From d5d1865469b63385d70645f710728482aed0f23d Mon Sep 17 00:00:00 2001 From: James Mills Date: Mon, 30 Mar 2020 14:05:46 +1000 Subject: [PATCH] Fix our Debian/Ubuntu packages to actually package the SystemD Unit files we expect. (#8468) * update netdata.conf for debian build * Fix Debian Ubuntu SystemD Unit packaging * avoid duplicate netdata.conf files violates single source of truth principle, use schema from #8468 instead * Fixed *DirectoryMode octets and bad ExecStart * Fix dpkg-statoverride warnings * Move the copy of debian/netdata.conf into the correct target (override_dh_install) Co-authored-by: and0x000 --- contrib/debian/netdata.conf | 16 ------- contrib/debian/netdata.postinst.in | 74 +++++++++++++++--------------- contrib/debian/netdata.service | 14 ------ contrib/debian/rules | 19 ++++++++ system/Makefile.am | 3 ++ system/netdata.service.v235.in | 10 ++-- 6 files changed, 63 insertions(+), 73 deletions(-) delete mode 100644 contrib/debian/netdata.conf delete mode 100644 contrib/debian/netdata.service diff --git a/contrib/debian/netdata.conf b/contrib/debian/netdata.conf deleted file mode 100644 index a963d80b74..0000000000 --- a/contrib/debian/netdata.conf +++ /dev/null @@ -1,16 +0,0 @@ -# NetData Configuration - -# The current full configuration can be retrieved from the running -# server at the URL -# -# http://localhost:19999/netdata.conf -# -# for example: -# -# wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf -# - -[global] - run as user = netdata - web files owner = root - web files group = netdata diff --git a/contrib/debian/netdata.postinst.in b/contrib/debian/netdata.postinst.in index b3e1635804..e93ff0ac11 100644 --- a/contrib/debian/netdata.postinst.in +++ b/contrib/debian/netdata.postinst.in @@ -3,61 +3,59 @@ set -e dpkg-maintscript-helper dir_to_symlink \ - /var/lib/netdata/www/.well-known /usr/share/netdata/www/.well-known 1.18.1~ netdata -- "$@" + /var/lib/netdata/www/.well-known /usr/share/netdata/www/.well-known 1.18.1~ netdata -- "$@" dpkg-maintscript-helper dir_to_symlink \ - /var/lib/netdata/www/css /usr/share/netdata/www/css 1.18.1~ netdata -- "$@" + /var/lib/netdata/www/css /usr/share/netdata/www/css 1.18.1~ netdata -- "$@" dpkg-maintscript-helper dir_to_symlink \ - /var/lib/netdata/www/fonts /usr/share/netdata/www/fonts 1.18.1~ netdata -- "$@" + /var/lib/netdata/www/fonts /usr/share/netdata/www/fonts 1.18.1~ netdata -- "$@" dpkg-maintscript-helper dir_to_symlink \ - /var/lib/netdata/www/images /usr/share/netdata/www/images 1.18.1~ netdata -- "$@" + /var/lib/netdata/www/images /usr/share/netdata/www/images 1.18.1~ netdata -- "$@" dpkg-maintscript-helper dir_to_symlink \ - /var/lib/netdata/www/lib /usr/share/netdata/www/lib 1.18.1~ netdata -- "$@" + /var/lib/netdata/www/lib /usr/share/netdata/www/lib 1.18.1~ netdata -- "$@" dpkg-maintscript-helper dir_to_symlink \ - /var/lib/netdata/www/static /usr/share/netdata/www/static 1.18.1~ netdata -- "$@" + /var/lib/netdata/www/static /usr/share/netdata/www/static 1.18.1~ netdata -- "$@" case "$1" in configure) - if [ -z "$2" ]; then - if ! getent group netdata >/dev/null; then - addgroup --quiet --system netdata - fi + if [ -z "$2" ]; then + if ! getent group netdata > /dev/null; then + addgroup --quiet --system netdata + fi - if ! getent passwd netdata >/dev/null; then - adduser --quiet --system --ingroup netdata --home /var/lib/netdata --no-create-home netdata - fi + if ! getent passwd netdata > /dev/null; then + adduser --quiet --system --ingroup netdata --home /var/lib/netdata --no-create-home netdata + fi - if ! dpkg-statoverride --list /var/lib/netdata >/dev/null 2>&1; then - dpkg-statoverride --update --add netdata netdata 0755 /var/lib/netdata - fi + if ! dpkg-statoverride --list /var/lib/netdata > /dev/null 2>&1; then + dpkg-statoverride --update --add netdata netdata 0755 /var/lib/netdata + fi - if ! dpkg-statoverride --list /var/lib/netdata/www >/dev/null 2>&1; then - dpkg-statoverride --update --add root netdata 0755 /var/lib/netdata/www - fi + if ! dpkg-statoverride --list /var/lib/netdata/www > /dev/null 2>&1; then + dpkg-statoverride --update --add root netdata 0755 /var/lib/netdata/www + fi - if ! dpkg-statoverride --list /var/cache/netdata >/dev/null 2>&1; then - dpkg-statoverride --update --add netdata netdata 0755 /var/cache/netdata - fi + if ! dpkg-statoverride --list /var/cache/netdata > /dev/null 2>&1; then + dpkg-statoverride --update --add netdata netdata 0755 /var/cache/netdata + fi - if ! dpkg-statoverride --list /var/run/netdata >/dev/null 2>&1; then - dpkg-statoverride --update --add netdata netdata 0755 /var/run/netdata - fi + if ! dpkg-statoverride --list /var/run/netdata > /dev/null 2>&1; then + dpkg-statoverride --update --add netdata netdata 0755 /var/run/netdata + fi - if ! dpkg-statoverride --list /var/log/netdata >/dev/null 2>&1; then - dpkg-statoverride --update --add netdata adm 02750 /var/log/netdata - fi + if ! dpkg-statoverride --list /var/log/netdata > /dev/null 2>&1; then + dpkg-statoverride --update --add netdata adm 02750 /var/log/netdata + fi - fi + 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/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 + dpkg-statoverride --force --update --add root netdata 0775 /var/lib/netdata/registry > /dev/null 2>&1 -#PERMS# - ;; + 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 + + ;; esac -#DEBHELPER# - exit 0 diff --git a/contrib/debian/netdata.service b/contrib/debian/netdata.service deleted file mode 100644 index e5d3a3863d..0000000000 --- a/contrib/debian/netdata.service +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=netdata real-time system monitoring -After=network.target - -[Service] -Type=simple -EnvironmentFile=-/etc/default/netdata -ExecStart=/usr/sbin/netdata -D $EXTRA_OPTS -TimeoutStopSec=30 -Restart=always -RestartSec=5 - -[Install] -WantedBy=multi-user.target diff --git a/contrib/debian/rules b/contrib/debian/rules index 09883140d3..bd545b698e 100755 --- a/contrib/debian/rules +++ b/contrib/debian/rules @@ -6,6 +6,16 @@ DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) TOP = $(CURDIR)/debian/netdata TEMPTOP = $(CURDIR)/debian/tmp +BASE_CONFIG = system/netdata.conf + +SYSTEMD_VERSION = $(shell /bin/sh -c "systemd --version 2>&1 | head -n 1 | cut -f 2 -d ' '") + +ifeq ($(shell test $(SYSTEMD_VERSION) -ge 235 && echo "1"), 1) +SYSTEMD_UNIT = system/netdata.service.v235 +else +SYSTEMD_UNIT = system/netdata.service +endif + %: # For jessie and beyond # @@ -17,6 +27,13 @@ TEMPTOP = $(CURDIR)/debian/tmp # #dh $@ --with autoreconf +override_dh_installinit: + echo "SystemD Version: $(SYSTEMD_VERSION)" + echo "Using SystemD Unit: $(SYSTEMD_UNIT)" + cp -v $(SYSTEMD_UNIT) debian/netdata.service + + dh_installinit + override_dh_auto_configure: packaging/bundle-mosquitto.sh . packaging/bundle-lws.sh . @@ -28,6 +45,8 @@ debian/%.postinst: debian/%.postinst.in sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' $< > $@ override_dh_install: debian/netdata.postinst + cp -v $(BASE_CONFIG) debian/netdata.conf + dh_install # Set the CUPS plugin install rule diff --git a/system/Makefile.am b/system/Makefile.am index ad68c65541..babad46990 100644 --- a/system/Makefile.am +++ b/system/Makefile.am @@ -7,6 +7,7 @@ CLEANFILES = \ netdata-openrc \ netdata.logrotate \ netdata.service \ + netdata.service.v235 \ netdata-init-d \ netdata-lsb \ netdata-freebsd \ @@ -28,6 +29,7 @@ nodist_noinst_DATA = \ netdata-openrc \ netdata.logrotate \ netdata.service \ + netdata.service.v235 \ netdata-init-d \ netdata-lsb \ netdata-freebsd \ @@ -39,6 +41,7 @@ dist_noinst_DATA = \ netdata-openrc.in \ netdata.logrotate.in \ netdata.service.in \ + netdata.service.v235.in \ netdata-init-d.in \ netdata-lsb.in \ netdata-freebsd.in \ diff --git a/system/netdata.service.v235.in b/system/netdata.service.v235.in index 303acb17c1..fc0e245c5a 100644 --- a/system/netdata.service.v235.in +++ b/system/netdata.service.v235.in @@ -14,11 +14,11 @@ CacheDirectory=netdata StateDirectory=netdata LogsDirectory=netdata RuntimeDirectoryMode=0775 -StateDirectoryMode=0750 -CacheDirectoryMode=0750 -LogsDirectoryMode=0750 -PIDFile=netdata/netdata.pid -ExecStart=@sbindir_POST@/netdata -P $PIDFILE -D +StateDirectoryMode=0755 +CacheDirectoryMode=0755 +LogsDirectoryMode=2750 +EnvironmentFile=-/etc/default/netdata +ExecStart=/usr/sbin/netdata -D $EXTRA_OPTS # saving a big db on slow disks may need some time TimeoutStopSec=60