123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 |
- #!/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
- BUILDDIR = $(CURDIR)/debian/build
- 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 = $(BUILDDIR)/system/systemd/netdata.service.v235
- else
- SYSTEMD_UNIT = $(BUILDDIR)/system/systemd/netdata.service
- endif
- ifeq ($(shell test ${DEB_TARGET_ARCH} != "amd64" && echo "1"), 1)
- HAVE_EBPF = 0
- EBPF_CONFIG = -DENABLE_PLUGIN_EBPF=Off
- else
- HAVE_EBPF = 1
- EBPF_CONFIG = -DENABLE_PLUGIN_EBPF=On
- endif
- ifeq ($(shell test ${DEB_TARGET_ARCH} != "amd64" && echo "1"), 1)
- ifeq ($(shell test ${DEB_TARGET_ARCH} != "arm64" && echo "1"), 1)
- HAVE_XENSTAT = 0
- XENSTAT_CONFIG = -DENABLE_PLUGIN_XENSTAT=Off
- else
- HAVE_XENSTAT = 1
- XENSTAT_CONFIG = -DENABLE_PLUGIN_XENSTAT=On
- endif
- else
- HAVE_XENSTAT = 1
- XENSTAT_CONFIG = -DENABLE_PLUGIN_XENSTAT=On
- endif
- %:
- dh $@ --builddirectory=$(BUILDDIR)
- 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
- dh_auto_configure -- -G Ninja \
- -DCMAKE_INSTALL_PREFIX=/ \
- -DWEB_DIR=/var/lib/netdata/www \
- -DENABLE_ACLK=On \
- -DENABLE_CLOUD=On \
- -DENABLE_DBENGINE=On \
- -DENABLE_H2O=On \
- -DENABLE_ML=On \
- -DENABLE_PLUGIN_APPS=On \
- -DENABLE_PLUGIN_CGROUP_NETWORK=On \
- -DENABLE_PLUGIN_DEBUGFS=On \
- $(EBPF_CONFIG) \
- -DENABLE_PLUGIN_FREEIPMI=On \
- -DENABLE_PLUGIN_LOCAL_LISTENERS=On \
- -DENABLE_PLUGIN_NFACCT=On \
- -DENABLE_PLUGIN_PERF=On \
- -DENABLE_PLUGIN_SLABINFO=On \
- -DENABLE_PLUGIN_SYSTEMD_JOURNAL=On \
- -DENABLE_PLUGIN_LOGS_MANAGEMENT=On \
- $(XENSTAT_CONFIG) \
- -DENABLE_EXPORTER_PROMETHEUS_REMOTE_WRITE=On \
- -DENABLE_EXPORTER_MONGODB=On \
- -DENABLE_BUNDLED_PROTOBUF=Off \
- -DENABLE_BUNDLED_JSONC=Off \
- -DENABLE_BUNDLED_YAML=Off
- override_dh_auto_test:
- true
- 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/
- # Add xenstat plugin install rules
- if [ $(HAVE_XENSTAT) -eq 1 ]; then \
- mkdir -p $(TOP)-plugin-xenstat/usr/libexec/netdata/plugins.d/ ; \
- mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/xenstat.plugin \
- $(TOP)-plugin-xenstat/usr/libexec/netdata/plugins.d/xenstat.plugin; \
- fi
- # 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
- # xenstat
- if [ $(HAVE_XENSTAT) -eq 1 ]; then \
- chmod 4750 $(TOP)-plugin-xenstat/usr/libexec/netdata/plugins.d/xenstat.plugin; \
- fi
- # logs-management
- chmod 4750 $(TOP)-plugin-logs-management/usr/libexec/netdata/plugins.d/logs-management.plugin
- override_dh_installlogrotate:
- cp $(BUILDDIR)/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
|