summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--contrib/debian/changelog5
-rw-r--r--contrib/debian/control39
-rw-r--r--contrib/debian/control.jessie56
-rwxr-xr-xcontrib/debian/install_go.sh96
-rw-r--r--contrib/debian/netdata.postinst.in7
-rwxr-xr-xcontrib/debian/rules22
6 files changed, 213 insertions, 12 deletions
diff --git a/contrib/debian/changelog b/contrib/debian/changelog
new file mode 100644
index 000000000..d9cf8bdbe
--- /dev/null
+++ b/contrib/debian/changelog
@@ -0,0 +1,5 @@
+netdata (PREVIOUS_PACKAGE_VERSION) unstable; urgency=medium
+
+ * Initial Release
+
+-- Netdata Builder <bot@netdata.cloud> PREVIOUS_PACKAGE_DATE
diff --git a/contrib/debian/control b/contrib/debian/control
index 0f4f1bc05..ed5bd94b8 100644
--- a/contrib/debian/control
+++ b/contrib/debian/control
@@ -4,18 +4,51 @@ Build-Depends: debhelper (>= 9),
dh-systemd (>= 1.5),
dpkg-dev (>= 1.13.19),
zlib1g-dev,
- uuid-dev
+ uuid-dev,
+ libuv1-dev,
+ liblz4-dev,
+ libjudy-dev,
+ libssl-dev,
+ libmnl-dev,
+ libjson-c-dev,
+ libcups2-dev,
+ libipmimonitoring-dev,
+ libnetfilter-acct-dev,
+ libsnappy-dev,
+ libprotobuf-dev,
+ libprotoc-dev,
+ autogen,
+ autoconf,
+ automake,
+ pkg-config,
+ curl,
+ gcc,
+ g++
Section: net
Priority: optional
-Maintainer: Costa Tsaousis <costa@tsaousis.gr>
+Maintainer: Netdata Builder <bot@netdata.cloud>
Standards-Version: 3.9.6
-Homepage: https://github.com/netdata/netdata/wiki
+Homepage: https://netdata.cloud
Package: netdata
Architecture: any
Depends: adduser,
libcap2-bin (>= 1:2.0),
lsb-base (>= 3.1-23.2),
+ zlib1g,
+ libuuid1,
+ libuv1,
+ liblz4-1,
+ libjudydebian1,
+ openssl,
+ libmnl0,
+ libjson-c3,
+ cups,
+ freeipmi,
+ libnetfilter-acct1,
+ libprotobuf-c1,
+ libsnappy1v5,
+ libprotoc10,
${misc:Depends},
${shlibs:Depends}
Description: real-time charts for system monitoring
diff --git a/contrib/debian/control.jessie b/contrib/debian/control.jessie
new file mode 100644
index 000000000..ced85d20e
--- /dev/null
+++ b/contrib/debian/control.jessie
@@ -0,0 +1,56 @@
+Source: netdata
+Build-Depends: debhelper (>= 9),
+ dh-autoreconf,
+ dh-systemd (>= 1.5),
+ dpkg-dev (>= 1.13.19),
+ zlib1g-dev,
+ uuid-dev,
+ liblz4-dev,
+ libjudy-dev,
+ libssl-dev,
+ libmnl-dev,
+ libjson-c-dev,
+ libcups2-dev,
+ libipmimonitoring-dev,
+ libnetfilter-acct-dev,
+ libsnappy-dev,
+ libprotobuf-dev,
+ libprotoc-dev,
+ autogen,
+ autoconf,
+ automake,
+ pkg-config,
+ curl,
+ gcc,
+ g++
+Section: net
+Priority: optional
+Maintainer: Costa Tsaousis <costa@tsaousis.gr>
+Standards-Version: 3.9.6
+Homepage: https://github.com/netdata/netdata/wiki
+
+Package: netdata
+Architecture: any
+Depends: adduser,
+ libcap2-bin (>= 1:2.0),
+ lsb-base (>= 3.1-23.2),
+ zlib1g,
+ libuuid1,
+ liblz4-1,
+ libjudydebian1,
+ openssl,
+ libmnl0,
+ libjson-c3,
+ cups,
+ freeipmi,
+ libnetfilter-acct1,
+ libprotobuf-c1,
+ libsnappy1v5,
+ libprotoc10,
+ ${misc:Depends},
+ ${shlibs:Depends}
+Description: real-time charts for system monitoring
+ Netdata is a daemon that collects data in realtime (per second)
+ and presents a web site to view and analyze them. The presentation
+ is also real-time and full of interactive charts that precisely
+ render all collected values.
diff --git a/contrib/debian/install_go.sh b/contrib/debian/install_go.sh
new file mode 100755
index 000000000..17a3b409e
--- /dev/null
+++ b/contrib/debian/install_go.sh
@@ -0,0 +1,96 @@
+#!/usr/bin/env bash
+
+LIB_DIR="$1"
+LIBEXEC_DIR="$2"
+
+# ############################################################
+# Package Go within netdata (TBD: Package it separately)
+safe_sha256sum() {
+ # Within the contexct of the installer, we only use -c option that is common between the two commands
+ # We will have to reconsider if we start non-common options
+ if command -v sha256sum >/dev/null 2>&1; then
+ sha256sum $@
+ elif command -v shasum >/dev/null 2>&1; then
+ shasum -a 256 $@
+ else
+ fatal "I could not find a suitable checksum binary to use"
+ fi
+}
+
+download_go() {
+ url="${1}"
+ dest="${2}"
+
+ if command -v curl >/dev/null 2>&1; then
+ curl -sSL --connect-timeout 10 --retry 3 "${url}" > "${dest}"
+ elif command -v wget >/dev/null 2>&1; then
+ wget -T 15 -O - "${url}" > "${dest}"
+ else
+ echo >&2
+ echo >&2 "Downloading go.d plugin from '${url}' failed because of missing mandatory packages."
+ echo >&2 "Either add packages or disable it by issuing '--disable-go' in the installer"
+ echo >&2
+ exit 1
+ fi
+}
+
+install_go() {
+ # When updating this value, ensure correct checksums in packaging/go.d.checksums
+ GO_PACKAGE_VERSION="v0.7.0"
+ ARCH_MAP=(
+ 'i386::386'
+ 'i686::386'
+ 'x86_64::amd64'
+ 'aarch64::arm64'
+ 'armv64::arm64'
+ 'armv6l::arm'
+ 'armv7l::arm'
+ 'armv5tel::arm'
+ )
+
+ if [ -z "${NETDATA_DISABLE_GO+x}" ]; then
+ echo >&2 "Install go.d.plugin"
+ ARCH=$(uname -m)
+ OS=$(uname -s | tr '[:upper:]' '[:lower:]')
+
+ for index in "${ARCH_MAP[@]}" ; do
+ KEY="${index%%::*}"
+ VALUE="${index##*::}"
+ if [ "$KEY" = "$ARCH" ]; then
+ ARCH="${VALUE}"
+ break
+ fi
+ done
+ tmp=$(mktemp -d /tmp/netdata-go-XXXXXX)
+ GO_PACKAGE_BASENAME="go.d.plugin-${GO_PACKAGE_VERSION}.${OS}-${ARCH}"
+ download_go "https://github.com/netdata/go.d.plugin/releases/download/${GO_PACKAGE_VERSION}/${GO_PACKAGE_BASENAME}" "${tmp}/${GO_PACKAGE_BASENAME}"
+ download_go "https://github.com/netdata/go.d.plugin/releases/download/${GO_PACKAGE_VERSION}/config.tar.gz" "${tmp}/config.tar.gz"
+
+ if [ ! -f "${tmp}/${GO_PACKAGE_BASENAME}" ] || [ ! -f "${tmp}/config.tar.gz" ] || [ ! -s "${tmp}/config.tar.gz" ] || [ ! -s "${tmp}/${GO_PACKAGE_BASENAME}" ]; then
+ echo >&2 "Either check the error or consider disabling it by issuing '--disable-go' in the installer"
+ echo >&2
+ return 1
+ fi
+
+ grep "${GO_PACKAGE_BASENAME}\$" "packaging/go.d.checksums" > "${tmp}/sha256sums.txt" 2>/dev/null
+ grep "config.tar.gz" "packaging/go.d.checksums" >> "${tmp}/sha256sums.txt" 2>/dev/null
+
+ # Checksum validation
+ if ! (cd "${tmp}" && safe_sha256sum -c "sha256sums.txt"); then
+
+ echo >&2 "go.d plugin checksum validation failure."
+ echo >&2 "Either check the error or consider disabling it by issuing '--disable-go' in the installer"
+ echo >&2
+
+ echo "go.d.plugin package files checksum validation failed."
+ exit 1
+ fi
+
+ # Install files
+ tar -xf "${tmp}/config.tar.gz" -C "${LIB_DIR}/conf.d/"
+ mv "${tmp}/$GO_PACKAGE_BASENAME" "${LIBEXEC_DIR}/plugins.d/go.d.plugin"
+ fi
+ return 0
+}
+
+install_go
diff --git a/contrib/debian/netdata.postinst.in b/contrib/debian/netdata.postinst.in
index 29615f541..44b53ccfb 100644
--- a/contrib/debian/netdata.postinst.in
+++ b/contrib/debian/netdata.postinst.in
@@ -28,9 +28,10 @@ case "$1" in
fi
dpkg-statoverride --update --add --force root netdata 0775 /var/lib/netdata/registry
- chown -R root:netdata /usr/share/netdata/*
- chown -R root:netdata /usr/lib/@DEB_HOST_MULTIARCH@/netdata/plugins.d
- setcap cap_dac_read_search,cap_sys_ptrace+ep /usr/lib/@DEB_HOST_MULTIARCH@/netdata/plugins.d/apps.plugin
+ chown -R root:netdata /usr/share/netdata
+ chown -R root:netdata /usr/libexec/netdata/plugins.d
+ chown -R root:netdata /var/lib/netdata/www
+ setcap cap_dac_read_search,cap_sys_ptrace+ep /usr/libexec/netdata/plugins.d/apps.plugin
#PERMS#
;;
diff --git a/contrib/debian/rules b/contrib/debian/rules
index c19323960..88a8ab36a 100755
--- a/contrib/debian/rules
+++ b/contrib/debian/rules
@@ -17,7 +17,9 @@ TOP = $(CURDIR)/debian/netdata
#dh $@ --with autoreconf
override_dh_auto_configure:
- dh_auto_configure -- --with-math --with-webdir=/var/lib/netdata/www
+ autoreconf -ivf
+ dh_auto_configure -- --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/libexec --with-user=netdata --with-math --with-webdir=/var/lib/netdata/www
debian/%.postinst: debian/%.postinst.in
sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' $< > $@
@@ -34,7 +36,7 @@ override_dh_install: debian/netdata.postinst
mkdir -p "$(TOP)/usr/share/netdata"
for D in $$(find "$(TOP)/var/lib/netdata/www/" -maxdepth 1 -type d -printf '%f '); do \
echo Relocating $$D; \
- mv "$(TOP)/var/lib/netdata/www/$$D" "$(TOP)/usr/share/netdata/$$D"; \
+ mv "$(TOP)/var/lib/netdata/www/$$D" "$(TOP)/usr/share/netdata/www/$$D"; \
ln -s "/usr/share/netdata/$$D" "$(TOP)/var/lib/netdata/www/$$D"; \
done
@@ -51,6 +53,10 @@ override_dh_install: debian/netdata.postinst
done
sed -i "/^#PERMS#/d" $(CURDIR)/debian/netdata.postinst
+ # Install go
+ #
+ debian/install_go.sh $(TOP)/usr/lib/$(DEB_HOST_MULTIARCH)/netdata/ $(TOP)/usr/libexec/netdata
+
override_dh_installdocs:
dh_installdocs
@@ -58,10 +64,11 @@ override_dh_installdocs:
-name README.md \
-not -path './.travis/*' \
-not -path './debian/*' \
+ -not -path './contrib/*' \
-exec cp \
- --parents \
- --target $(TOP)/usr/share/doc/netdata/ \
- {} \;
+ --parents \
+ --target $(TOP)/usr/share/doc/netdata/ \
+ {} \;
override_dh_fixperms:
dh_fixperms
@@ -69,7 +76,10 @@ override_dh_fixperms:
# 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/$(DEB_HOST_MULTIARCH)/netdata/plugins.d/apps.plugin
+ chmod 0754 $(TOP)/usr/libexec/netdata/plugins.d/apps.plugin
+ chmod 0754 $(TOP)/usr/libexec/netdata/plugins.d/freeipmi.plugin
+ chmod 0754 $(TOP)/usr/libexec/netdata/plugins.d/perf.plugin
+ chmod 0750 $(TOP)/usr/libexec/netdata/plugins.d/go.d.plugin
override_dh_installlogrotate:
cp system/netdata.logrotate debian/netdata.logrotate