0
0
Fork 0
mirror of https://github.com/netdata/netdata.git synced 2025-04-07 06:45:39 +00:00
netdata_netdata/contrib/debian/rules
vkalintiris 18800a4af5
Setup sentry-native SDK. ()
* Setup sentry-native SDK.

* Integrate Sentry into our CI

Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>

* minor fix

Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>

* Include sentry field to the build matrix

Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>

* Update the bundle_sentry flag for all the distros

Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>

* more changes

Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>

* NON mergeable change

Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>

* .

Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>

* Enable fetch content.

* Abort in profile plugin

* Update plugin_profile.cc

* NON MERGABLE COMMIT, just for testing purposes

* NON MERGEABLE CHANGE, jsut for testing purposes

* Bump

* Use breakpad backend

* Multiple changes

- Make DSN variable that we read from the CI from the CI
- Upload debug symbols
- Fix packaging workflow; include new env vars & fix shecllchecks

Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>

* Modify sentry dif command

* fix merge conf

Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>

* Fix merge conflict

* Undo file prefix map.

* Fix typo

* Cleanup stuff.

* Add 256-checksum

* Renable ML for debs

* Finalize CI changes

Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>

* Update rules

* final touches

Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>

* merge the two if, no point to have them sep

Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>

* Update contrib/debian/rules

Co-authored-by: Tasos Katsoulas <12612986+tkatsoulas@users.noreply.github.com>

* Update contrib/debian/rules

Co-authored-by: Tasos Katsoulas <12612986+tkatsoulas@users.noreply.github.com>

* Add license

* Enable sentry for debian 12.

* Update .github/workflows/packaging.yml

Co-authored-by: Austin S. Hemmelgarn <ahferroin7@gmail.com>

---------

Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud>
Co-authored-by: Tasos Katsoulas <tasos@netdata.cloud>
Co-authored-by: Tasos Katsoulas <12612986+tkatsoulas@users.noreply.github.com>
Co-authored-by: Austin S. Hemmelgarn <ahferroin7@gmail.com>
2024-01-30 21:02:09 +02:00

329 lines
12 KiB
Makefile
Executable file

#!/usr/bin/make -f
# Find the arch we are building for, as this determines
# the location of plugins in /usr/lib
SRC_DIR = /usr/src/netdata
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
ifeq ($(ENABLE_SENTRY),true)
RELEASE_PIPELINE ?= Unknown
VERSION ?= Unknown
BUILD_DESTINATION ?= Unknown
SENTRY_CONFIG := -DENABLE_SENTRY=On \
-DNETDATA_SENTRY_ENVIRONMENT=$(RELEASE_PIPELINE) \
-DNETDATA_SENTRY_RELEASE=$(VERSION) \
-DNETDATA_SENTRY_DIST=$(BUILD_DESTINATION) \
-DNETDATA_SENTRY_DSN=$(SENTRY_DSN)
else
SENTRY_CONFIG := -DENABLE_SENTRY=Off
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 \
-DCMAKE_C_FLAGS='-ffile-prefix-map=${SRC_DIR}=${SRC_DIR}' \
-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 \
${SENTRY_CONFIG} \
-DENABLE_BUNDLED_YAML=Off
override_dh_auto_test:
true
override_dh_strip:
if [ "${ENABLE_SENTRY}" = "true" ] && [ "${UPLOAD_SENTRY}" = "true" ]; then \
sentry-cli debug-files upload -o netdata-inc -p netdata-agent --force-foreground --log-level=debug --wait --include-sources /usr/src/netdata/debian/netdata/usr/sbin/netdata; \
fi
dh_strip
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
# network-viewer
chmod 4750 $(TOP)/usr/libexec/netdata/plugins.d/network-viewer.plugin
# 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