#!/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/systemd/netdata.service.v235 else SYSTEMD_UNIT = system/systemd/netdata.service endif ifeq ($(shell test ${DEB_TARGET_ARCH} != "amd64" && echo "1"), 1) HAVE_EBPF = 0 EBPF_CONFIG = --disable-ebpf else HAVE_EBPF = 1 endif %: dh $@ override_dh_installinit: echo "SystemD Version: $(SYSTEMD_VERSION)" echo "Using SystemD Unit: $(SYSTEMD_UNIT)" cp -v $(SYSTEMD_UNIT) debian/netdata.service dh_systemd_enable dh_installinit override_dh_auto_configure: if [ $(HAVE_EBPF) -eq 1 ]; then \ packaging/bundle-libbpf.sh . ${TOP}/usr/libexec/netdata/plugins.d; \ packaging/bundle-ebpf-co-re.sh . ${TOP}/usr/libexec/netdata/plugins.d; \ fi 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 \ --disable-dependency-tracking $(EBPF_CONFIG) 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 # Add free IPMI plugin install rules # mkdir -p $(TOP)-plugin-nfacct/usr/libexec/netdata/plugins.d mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/nfacct.plugin \ $(TOP)-plugin-nfacct/usr/libexec/netdata/plugins.d/nfacct.plugin # Add charts.d plugin install rules # mkdir -p $(TOP)-plugin-chartsd/usr/libexec/netdata/plugins.d/ mkdir -p $(TOP)-plugin-chartsd/usr/lib/netdata/conf.d/ mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/charts.d.plugin \ $(TOP)-plugin-chartsd/usr/libexec/netdata/plugins.d/charts.d.plugin mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/charts.d.dryrun-helper.sh \ $(TOP)-plugin-chartsd/usr/libexec/netdata/plugins.d/charts.d.dryrun-helper.sh mv -f $(TEMPTOP)/usr/libexec/netdata/charts.d \ $(TOP)-plugin-chartsd/usr/libexec/netdata/charts.d mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/charts.d.conf \ $(TOP)-plugin-chartsd/usr/lib/netdata/conf.d/charts.d.conf mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/charts.d \ $(TOP)-plugin-chartsd/usr/lib/netdata/conf.d/charts.d # Add ebpf plugin install rules if [ $(HAVE_EBPF) -eq 1 ]; then \ mkdir -p $(TOP)-plugin-ebpf/usr/libexec/netdata/plugins.d/; \ mkdir -p $(TOP)-plugin-ebpf/usr/lib/netdata/conf.d/; \ mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/ebpf.plugin $(TOP)-plugin-ebpf/usr/libexec/netdata/plugins.d/ebpf.plugin; \ mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/ebpf.d.conf $(TOP)-plugin-ebpf/usr/lib/netdata/conf.d/ebpf.d.conf; \ mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/ebpf.d $(TOP)-plugin-ebpf/usr/lib/netdata/conf.d/ebpf.d; \ fi # Add python plugin install rules mkdir -p $(TOP)-plugin-pythond/usr/libexec/netdata/plugins.d/ mkdir -p $(TOP)-plugin-pythond/usr/lib/netdata/conf.d/ mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/python.d.plugin \ $(TOP)-plugin-pythond/usr/libexec/netdata/plugins.d/python.d.plugin mv -f $(TEMPTOP)/usr/libexec/netdata/python.d \ $(TOP)-plugin-pythond/usr/libexec/netdata/python.d mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/python.d.conf \ $(TOP)-plugin-pythond/usr/lib/netdata/conf.d/python.d.conf mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/python.d \ $(TOP)-plugin-pythond/usr/lib/netdata/conf.d/python.d # Add apps plugin install rules mkdir -p $(TOP)-plugin-apps/usr/libexec/netdata/plugins.d/ mkdir -p $(TOP)-plugin-apps/usr/lib/netdata/conf.d/ mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/apps.plugin \ $(TOP)-plugin-apps/usr/libexec/netdata/plugins.d/apps.plugin mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/apps_groups.conf \ $(TOP)-plugin-apps/usr/lib/netdata/conf.d/apps_groups.conf # Add slabinfo plugin install rules mkdir -p $(TOP)-plugin-slabinfo/usr/libexec/netdata/plugins.d/ mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/slabinfo.plugin \ $(TOP)-plugin-slabinfo/usr/libexec/netdata/plugins.d/slabinfo.plugin # Add perf plugin install rules mkdir -p $(TOP)-plugin-perf/usr/libexec/netdata/plugins.d/ mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/perf.plugin \ $(TOP)-plugin-perf/usr/libexec/netdata/plugins.d/perf.plugin # Add debugfs plugin install rules mkdir -p $(TOP)-plugin-debugfs/usr/libexec/netdata/plugins.d/ mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/debugfs.plugin \ $(TOP)-plugin-debugfs/usr/libexec/netdata/plugins.d/debugfs.plugin # Add systemd-journal plugin install rules mkdir -p $(TOP)-plugin-systemd-journal/usr/libexec/netdata/plugins.d/ mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/systemd-journal.plugin \ $(TOP)-plugin-systemd-journal/usr/libexec/netdata/plugins.d/systemd-journal.plugin # Add logs-management plugin install rules mkdir -p $(TOP)-plugin-logs-management/usr/libexec/netdata/plugins.d/ mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/logs-management.plugin \ $(TOP)-plugin-logs-management/usr/libexec/netdata/plugins.d/logs-management.plugin mkdir -p $(TOP)-plugin-logs-management/usr/lib/netdata/conf.d/ mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/logsmanagement.d.conf \ $(TOP)-plugin-logs-management/usr/lib/netdata/conf.d/logsmanagement.d.conf mv -f $(TEMPTOP)/usr/lib/netdata/conf.d/logsmanagement.d/ \ $(TOP)-plugin-logs-management/usr/lib/netdata/conf.d/logsmanagement.d/ # 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" # Copy the updater script # cp -v packaging/installer/netdata-updater.sh $(TOP)/usr/libexec/netdata/netdata-updater.sh # Move files that local user shouldn't be editing to /usr/share/netdata # 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 # Handle eBPF code # if [ $(HAVE_EBPF) -eq 1 ]; then \ mkdir -p $(TOP)-ebpf-code-legacy/usr/libexec/netdata/plugins.d/; \ packaging/bundle-ebpf.sh . ${TOP}-ebpf-code-legacy/usr/libexec/netdata/plugins.d/ force; \ fi # Install go to it's own package directory # mkdir -p $(TOP)-plugin-go/usr/lib/netdata/conf.d mkdir -p $(TOP)-plugin-go/usr/libexec/netdata/plugins.d debian/install_go.sh $$(cat ${CURDIR}/packaging/go.d.version) \ $(TOP)-plugin-go/usr/lib/netdata \ $(TOP)-plugin-go/usr/libexec/netdata override_dh_installdocs: dh_installdocs find . \ -name README.md \ -not -path './debian/*' \ -not -path './contrib/*' \ -exec cp \ --parents \ --target $(TOP)/usr/share/doc/netdata/ \ {} \; override_dh_fixperms: dh_fixperms # Updater script should be executable # chmod 0755 $(TOP)/usr/libexec/netdata/netdata-updater.sh # debugfs plugin chmod 0750 $(TOP)-plugin-debugfs/usr/libexec/netdata/plugins.d/debugfs.plugin # apps.plugin should only be runnable by the netdata user. It will be # given extra capabilities in the postinst script. # chmod 0750 $(TOP)-plugin-apps/usr/libexec/netdata/plugins.d/apps.plugin # slabinfo package chmod 0750 $(TOP)-plugin-slabinfo/usr/libexec/netdata/plugins.d/slabinfo.plugin # perf package chmod 0750 $(TOP)-plugin-perf/usr/libexec/netdata/plugins.d/perf.plugin # Go plugin package chmod 0750 $(TOP)-plugin-go/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 # NFACCT plugin package chmod 4750 $(TOP)-plugin-nfacct/usr/libexec/netdata/plugins.d/nfacct.plugin # cgroup-network chmod 4750 $(TOP)/usr/libexec/netdata/plugins.d/cgroup-network # local-listeners chmod 4750 $(TOP)/usr/libexec/netdata/plugins.d/local-listeners # systemd-journal chmod 4750 $(TOP)-plugin-systemd-journal/usr/libexec/netdata/plugins.d/systemd-journal.plugin # systemd-journal chmod 4750 $(TOP)-plugin-logs-management/usr/libexec/netdata/plugins.d/logs-management.plugin override_dh_installlogrotate: cp system/logrotate/netdata debian/netdata.logrotate dh_installlogrotate override_dh_installdeb: dh_installdeb @echo "Recreating conffiles without auto-adding /etc files" @cp $(CURDIR)/debian/conffiles $(CURDIR)/debian/netdata/DEBIAN/conffiles override_dh_clean: dh_clean # Tidy up copied/generated files # [ -r $(CURDIR)/debian/netdata.logrotate ] && rm $(CURDIR)/debian/netdata.logrotate ; true [ -r $(CURDIR)/debian/netdata.conffiles ] && rm $(CURDIR)/debian/netdata.conffiles ; true