diff options
Diffstat (limited to 'contrib/debian/rules')
-rwxr-xr-x | contrib/debian/rules | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/contrib/debian/rules b/contrib/debian/rules new file mode 100755 index 0000000..9bfd057 --- /dev/null +++ b/contrib/debian/rules @@ -0,0 +1,127 @@ +#!/usr/bin/make -f + +# Find the arch we are building for, as this determines +# the location of plugins in /usr/lib +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 + # + dh $@ --with autoreconf,systemd + + # For wheezy or other non-systemd distributions use the following. You + # should also see contrib/README.md which gives details of updates to + # make to debian/control. + # + #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 . + packaging/bundle-libbpf.sh . + autoreconf -ivf + dh_auto_configure -- --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib \ + --libexecdir=/usr/libexec --with-user=netdata --with-math --with-zlib --with-webdir=/var/lib/netdata/www \ + --with-bundled-lws=externaldeps/libwebsockets + +override_dh_install: + cp -v $(BASE_CONFIG) debian/netdata.conf + + dh_install + + # Set the CUPS plugin install rule + # + mkdir -p $(TOP)-plugin-cups/usr/libexec/netdata/plugins.d + mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/cups.plugin \ + $(TOP)-plugin-cups/usr/libexec/netdata/plugins.d/cups.plugin + + # Add free IPMI plugin install rules + # + mkdir -p $(TOP)-plugin-freeipmi/usr/libexec/netdata/plugins.d + mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/freeipmi.plugin \ + $(TOP)-plugin-freeipmi/usr/libexec/netdata/plugins.d/freeipmi.plugin + + # Set the rest of the software in the main package + # + cp -rp $(TEMPTOP)/usr $(TOP) + cp -rp $(TEMPTOP)/var $(TOP) + cp -rp $(TEMPTOP)/etc $(TOP) + mkdir -p "$(TOP)/var/log/netdata" + mkdir -p "$(TOP)/var/cache/netdata" + mkdir -p "$(TOP)/var/run/netdata" + + # Move files that local user shouldn't be editing to /usr/share/netdata + # + packaging/bundle-dashboard.sh . ${TOP}/var/lib/netdata/www + mkdir -p "$(TOP)/usr/share/netdata/www" + 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/www/$$D"; \ + ln -s "/usr/share/netdata/www/$$D" "$(TOP)/var/lib/netdata/www/$$D"; \ + done + + packaging/bundle-ebpf.sh . ${TOP}/usr/libexec/netdata/plugins.d + + # Install go + # + debian/install_go.sh $$(cat ${CURDIR}/packaging/go.d.version) $(TOP)/usr/lib/netdata $(TOP)/usr/libexec/netdata + +override_dh_installdocs: + dh_installdocs + + find . \ + -name README.md \ + -not -path './.travis/*' \ + -not -path './debian/*' \ + -not -path './contrib/*' \ + -exec cp \ + --parents \ + --target $(TOP)/usr/share/doc/netdata/ \ + {} \; + +override_dh_fixperms: + 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/libexec/netdata/plugins.d/apps.plugin + chmod 0754 $(TOP)/usr/libexec/netdata/plugins.d/perf.plugin + chmod 0754 $(TOP)/usr/libexec/netdata/plugins.d/slabinfo.plugin + chmod 0750 $(TOP)/usr/libexec/netdata/plugins.d/go.d.plugin + + # CUPS plugin package + chmod 0750 $(TOP)-plugin-cups/usr/libexec/netdata/plugins.d/cups.plugin + + # freeIPMI plugin package + chmod 4750 $(TOP)-plugin-freeipmi/usr/libexec/netdata/plugins.d/freeipmi.plugin + +override_dh_installlogrotate: + cp system/netdata.logrotate debian/netdata.logrotate + dh_installlogrotate + +override_dh_clean: + dh_clean + + # Tidy up copied/generated files + # + -[ -r $(CURDIR)/debian/netdata.logrotate ] && rm $(CURDIR)/debian/netdata.logrotate + -[ -r $(CURDIR)/debian/netdata.conffiles ] && rm $(CURDIR)/debian/netdata.conffiles |