summaryrefslogtreecommitdiffstats
path: root/debian/rules
diff options
context:
space:
mode:
Diffstat (limited to 'debian/rules')
-rwxr-xr-xdebian/rules199
1 files changed, 199 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..c056376
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,199 @@
+#!/usr/bin/make -f
+
+TOP = $(CURDIR)/debian/netdata
+
+PACKAGES := $(shell dh_listpackages -a)
+
+VERSION := $(shell dpkg-parsechangelog -SVersion)
+VERSION_MAJOR := $(word 1, $(subst ., ,$(VERSION)))
+VERSION_MINOR := $(word 2, $(subst ., ,$(VERSION)))
+VERSION_FIX := $(word 3, $(subst -, ,$(subst ., ,$(VERSION))))
+VERSION_SUFFIX := -$(word 4, $(subst -, ,$(subst ., ,$(VERSION))))
+
+include /usr/share/dpkg/architecture.mk
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+ifeq ($(DEB_HOST_ARCH),s390x)
+export DEB_CFLAGS_MAINT_APPEND = -Wall -O2
+else
+export DEB_CFLAGS_MAINT_APPEND = -Wall -O3
+endif
+
+export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
+
+%:
+ dh ${@} --with apache2
+
+execute_before_dh_autoreconf:
+ mkdir -p mqtt_websockets
+
+ rm -f debian/configure.ac.orig
+ cp configure.ac debian/configure.ac.orig
+
+ sed -i -e 's/^\(define(\[VERSION_MAJOR]\).*/\1, [$(VERSION_MAJOR)])/' \
+ -e 's/^\(define(\[VERSION_MINOR]\).*/\1, [$(VERSION_MINOR)])/' \
+ -e 's/^\(define(\[VERSION_FIX]\).*/\1, [$(VERSION_FIX)])/' \
+ -e 's/^\(define(\[VERSION_SUFFIX]\).*/\1, [$(VERSION_SUFFIX)])/' \
+ configure.ac
+
+execute_before_dh_autoreconf_clean:
+ if [ -e debian/configure.ac.orig ]; \
+ then \
+ rm -f configure.ac; \
+ mv debian/configure.ac.orig configure.ac; \
+ fi
+
+execute_after_dh_auto_clean:
+ rm -rf build-core
+ rm -rf build-core-no-sse debian/tmp-core-no-sse
+
+override_dh_auto_configure:
+ mkdir -p build-core
+ dh_auto_configure -B build-core -- --libdir=/usr/lib --libexecdir=/usr/lib \
+ --disable-cloud \
+ --enable-x86-sse \
+ --disable-exporting-prometheus-remote-write \
+ --enable-dbengine \
+ --enable-https \
+ --enable-plugin-cups \
+ --enable-plugin-nfacct \
+ --with-math
+ cp -a mqtt_websockets tests build-core
+ cp -a web/gui/src build-core/web/gui
+
+ifeq (netdata-core-no-sse,$(findstring netdata-core-no-sse,$(PACKAGES)))
+ mkdir -p build-core-no-sse
+ dh_auto_configure -B build-core-no-sse -- --libdir=/usr/lib --libexecdir=/usr/lib \
+ --disable-cloud \
+ --disable-x86-sse \
+ --disable-exporting-prometheus-remote-write \
+ --enable-dbengine \
+ --enable-https \
+ --enable-plugin-cups \
+ --enable-plugin-nfacct \
+ --with-math
+ cp -a mqtt_websockets tests build-core-no-sse
+ cp -a web/gui/src build-core-no-sse/web/gui
+endif
+
+override_dh_auto_build:
+ dh_auto_build -B build-core
+
+ifeq (netdata-core-no-sse,$(findstring netdata-core-no-sse,$(PACKAGES)))
+ dh_auto_build -B build-core-no-sse
+endif
+
+override_dh_auto_install:
+ dh_auto_install -B build-core -- DESTDIR=$(CURDIR)/debian/tmp
+
+ # Removing unused files
+ rm -f debian/tmp/etc/netdata/.install-type
+ rm -f debian/tmp/usr/lib/netdata/install-service.sh
+ rm -f debian/tmp/usr/lib/netdata/system/netdata*
+ rmdir debian/tmp/usr/lib/netdata/system
+
+ # Building without aws kinesis backend (needs aws sdk)
+ rm -f debian/tmp/usr/lib/netdata/conf.d/aws_kinesis.conf
+
+ifeq (netdata-core-no-sse,$(findstring netdata-core-no-sse,$(PACKAGES)))
+ dh_auto_install -B build-core-no-sse -- DESTDIR=$(CURDIR)/debian/tmp-core-no-sse
+endif
+
+ # Moving architecture independent plugins
+ mkdir -p $(TOP)-plugins-python/usr/lib/netdata/conf.d
+ mv debian/tmp/usr/lib/netdata/conf.d/python.d/mongodb.conf $(TOP)-plugins-python/usr/lib/netdata/conf.d
+
+override_dh_install-arch:
+ find debian/tmp -name .keep -delete
+
+ # Copy architecture dependent plugins
+ mkdir -p $(TOP)-core/etc/netdata
+ cp debian/local/netdata/netdata.conf $(TOP)-core/etc/netdata
+ touch $(TOP)-core/etc/netdata/.opt-out-from-anonymous-statistics
+
+ mkdir -p $(TOP)-core/usr/lib/netdata/plugins.d
+ for plugin in cgroup-network apps.plugin nfacct.plugin perf.plugin slabinfo.plugin; \
+ do \
+ cp debian/tmp/usr/lib/netdata/plugins.d/$${plugin} \
+ $(TOP)-core/usr/lib/netdata/plugins.d; \
+ done
+
+ifeq (netdata-core-no-sse,$(findstring netdata-core-no-sse,$(PACKAGES)))
+ find debian/tmp-core-no-sse -name .keep -delete
+ dh_install -p netdata-core-no-sse --sourcedir=debian/tmp-core-no-sse
+
+ mkdir -p $(TOP)-core-no-sse/etc/netdata
+ cp debian/local/netdata/netdata.conf $(TOP)-core-no-sse/etc/netdata
+ touch $(TOP)-core-no-sse/etc/netdata/.opt-out-from-anonymous-statistics
+
+ mkdir -p $(TOP)-core-no-sse/usr/lib/netdata/plugins.d
+ for plugin in cgroup-network apps.plugin nfacct.plugin perf.plugin slabinfo.plugin; \
+ do \
+ cp debian/tmp-core-no-sse/usr/lib/netdata/plugins.d/$${plugin} \
+ $(TOP)-core-no-sse/usr/lib/netdata/plugins.d; \
+ done
+
+ dh_install -a --remaining-packages
+else
+ dh_install -a
+endif
+
+override_dh_install-indep:
+ find debian/tmp -name .keep -delete
+
+ dh_install -i
+
+ # Move architecture dependent plugins
+ mkdir -p $(TOP)-core/usr/lib/netdata/plugins.d
+ for plugin in cgroup-network apps.plugin nfacct.plugin perf.plugin slabinfo.plugin; \
+ do \
+ mv -f $(TOP)-plugins-bash/usr/lib/netdata/plugins.d/$${plugin} \
+ $(TOP)-core/usr/lib/netdata/plugins.d; \
+ done
+
+ mkdir -p $(TOP)-plugins-python/usr/lib/netdata/plugins.d
+ for plugin in python.d.plugin; \
+ do \
+ mv $(TOP)-plugins-bash/usr/lib/netdata/plugins.d/$${plugin} \
+ $(TOP)-plugins-python/usr/lib/netdata/plugins.d; \
+ done
+
+ # Setting package version (update check)
+ echo $(VERSION) > $(TOP)-web/usr/share/netdata/web/version.txt
+
+override_dh_installinit:
+ dh_installinit -p netdata-core --name=netdata
+ dh_installinit -p netdata-core-no-sse --name=netdata
+ dh_installinit --remaining-packages
+
+override_dh_installsystemd:
+ dh_installsystemd -p netdata-core --name=netdata
+ dh_installsystemd -p netdata-core-no-sse --name=netdata
+ dh_installsystemd --remaining-packages
+
+override_dh_installlogrotate:
+ dh_installlogrotate -p netdata-core --name=netdata
+ dh_installlogrotate -p netdata-core-no-sse --name=netdata
+ dh_installlogrotate --remaining-packages
+
+override_dh_fixperms-arch:
+ dh_fixperms -a
+
+ # apps.plugin should only be runnable by the netdata user. It will be
+ # given extra capabilities in the postinst script.
+ chmod 0754 $(TOP)-core/usr/lib/netdata/plugins.d/apps.plugin
+ chmod 4754 $(TOP)-core/usr/lib/netdata/plugins.d/perf.plugin
+ifeq (netdata-core-no-sse,$(findstring netdata-core-no-sse,$(PACKAGES)))
+ chmod 0754 $(TOP)-core-no-sse/usr/lib/netdata/plugins.d/apps.plugin
+ chmod 4754 $(TOP)-core-no-sse/usr/lib/netdata/plugins.d/perf.plugin
+endif
+
+override_dh_fixperms-indep:
+ dh_fixperms -i
+
+ # apps.plugin should only be runnable by the netdata user. It will be
+ # given extra capabilities in the postinst script.
+ chmod 0644 $(TOP)-plugins-bash/usr/lib/netdata/charts.d/*.sh
+ chmod 0644 $(TOP)-plugins-bash/usr/lib/netdata/plugins.d/*.sh.inc
+ chmod 0644 $(TOP)-plugins-python/usr/lib/netdata/python.d/*.py