From 164f02b208b26232750eadbc6d64ceeeefa38b40 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 2 Jan 2019 14:10:55 +0100 Subject: Adding netdata-core-no-sse on i386 with sse2 optimizations turned off. Signed-off-by: Daniel Baumann --- debian/TODO | 2 +- debian/control | 48 ++++++++++++++++++++--- debian/netdata-core-no-sse.dirs | 1 + debian/netdata-core-no-sse.docs | 1 + debian/netdata-core-no-sse.install | 1 + debian/netdata-core-no-sse.lintian-overrides | 6 +++ debian/netdata-core-no-sse.maintscript | 1 + debian/netdata-core-no-sse.manpages | 1 + debian/netdata-core-no-sse.netdata.init | 1 + debian/netdata-core-no-sse.netdata.logrotate | 1 + debian/netdata-core-no-sse.netdata.service | 1 + debian/netdata-core-no-sse.postinst | 1 + debian/netdata-core-no-sse.postrm | 1 + debian/rules | 57 +++++++++++++++++++++++++--- 14 files changed, 111 insertions(+), 12 deletions(-) create mode 120000 debian/netdata-core-no-sse.dirs create mode 120000 debian/netdata-core-no-sse.docs create mode 120000 debian/netdata-core-no-sse.install create mode 100644 debian/netdata-core-no-sse.lintian-overrides create mode 120000 debian/netdata-core-no-sse.maintscript create mode 120000 debian/netdata-core-no-sse.manpages create mode 120000 debian/netdata-core-no-sse.netdata.init create mode 120000 debian/netdata-core-no-sse.netdata.logrotate create mode 120000 debian/netdata-core-no-sse.netdata.service create mode 120000 debian/netdata-core-no-sse.postinst create mode 120000 debian/netdata-core-no-sse.postrm diff --git a/debian/TODO b/debian/TODO index 27fd1b5d9..2c514d008 100644 --- a/debian/TODO +++ b/debian/TODO @@ -7,7 +7,7 @@ * rethink package splitting, i.e. something like... - netdata: meta package, depending on netdata-daemon, netdata-web - netdata-daemon: just the daemon and systemd/init integration, -O3 and sse2 - - netdata-daemon-legacy: daemon compiled with -O2 and without sse2 etc. + - netdata-daemon-no-sse: daemon compiled with -O2 and without sse2 etc. - netdata-web: webfrontend, not needed on small devices - netdata-common: plugins, checks, etc (everything arch all). diff --git a/debian/control b/debian/control index fa759f168..b2114272a 100644 --- a/debian/control +++ b/debian/control @@ -21,7 +21,7 @@ Package: netdata Section: net Architecture: all Depends: - netdata-core (=${source:Version}), + netdata-core (=${source:Version}) | netdata-core-no-sse (=${source:Version}), netdata-plugins-bash (=${source:Version}), netdata-web (=${source:Version}), ${misc:Depends}, @@ -47,8 +47,13 @@ Pre-Depends: Depends: libcap2-bin, lsb-base, + sse2-support, ${misc:Depends}, ${shlibs:Depends}, +Conflicts: + netdata-core-no-sse, +Replaces: + netdata-core-no-sse, Recommends: curl, Breaks: @@ -58,7 +63,34 @@ Description: real-time performance monitoring (core) systems and applications. It provides insights of everything happening on the systems it runs using interactive web dashboards. . - This package contains the minimal core. + This package contains the minimal core build with SSE2 optimizations for + current systems. + +Package: netdata-core-no-sse +Section: net +Architecture: i386 +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + libcap2-bin, + lsb-base, + ${misc:Depends}, + ${shlibs:Depends}, +Conflicts: + netdata-core, +Replaces: + netdata-core, +Recommends: + curl, +Breaks: + netdata (<< 1.11.1+dfsg-3~), +Description: real-time performance monitoring (core, no-sse build) + Netdata is distributed, real-time, performance and health monitoring for + systems and applications. It provides insights of everything happening on the + systems it runs using interactive web dashboards. + . + This package contains the minimal core build without SSE2 optimizations for + old systems. If unsure, use netdata-core instead. Package: netdata-plugins-bash Section: net @@ -66,12 +98,13 @@ Architecture: all Multi-Arch: foreign Depends: bash, - netdata-core (=${source:Version}), + netdata-core (=${source:Version}) | netdata-core-no-sse (=${source:Version}), ${misc:Depends}, Suggests: fping, Enhances: netdata-core, + netdata-core-no-sse, Description: real-time performance monitoring (bash plugins) Netdata is distributed, real-time, performance and health monitoring for systems and applications. It provides insights of everything happening on the @@ -84,11 +117,12 @@ Section: net Architecture: all Multi-Arch: foreign Depends: - netdata-core (=${source:Version}), + netdata-core (=${source:Version}) | netdata-core-no-sse (=${source:Version}), nodejs, ${misc:Depends}, Enhances: netdata-core, + netdata-core-no-sse, Description: real-time performance monitoring (nodejs plugins) Netdata is distributed, real-time, performance and health monitoring for systems and applications. It provides insights of everything happening on the @@ -101,7 +135,7 @@ Section: net Architecture: all Multi-Arch: foreign Depends: - netdata-core (=${source:Version}), + netdata-core (=${source:Version}) | netdata-core-no-sse (=${source:Version}), python3, python3-six, python3-urllib3 (>= 1.22), @@ -109,6 +143,7 @@ Depends: ${misc:Depends}, Enhances: netdata-core, + netdata-core-no-sse, Description: real-time performance monitoring (python plugins) Netdata is distributed, real-time, performance and health monitoring for systems and applications. It provides insights of everything happening on the @@ -122,7 +157,7 @@ Architecture: all Depends: fonts-font-awesome, libjs-bootstrap, - netdata-core (=${source:Version}), + netdata-core (=${source:Version}) | netdata-core-no-sse (=${source:Version}), ${misc:Depends}, Conflicts: netdata-data, @@ -130,6 +165,7 @@ Replaces: netdata-data, Enhances: netdata-core, + netdata-core-no-sse, Description: real-time performance monitoring (web) Netdata is distributed, real-time, performance and health monitoring for systems and applications. It provides insights of everything happening on the diff --git a/debian/netdata-core-no-sse.dirs b/debian/netdata-core-no-sse.dirs new file mode 120000 index 000000000..05b68142c --- /dev/null +++ b/debian/netdata-core-no-sse.dirs @@ -0,0 +1 @@ +netdata-core.dirs \ No newline at end of file diff --git a/debian/netdata-core-no-sse.docs b/debian/netdata-core-no-sse.docs new file mode 120000 index 000000000..543b6cb1a --- /dev/null +++ b/debian/netdata-core-no-sse.docs @@ -0,0 +1 @@ +netdata-core.docs \ No newline at end of file diff --git a/debian/netdata-core-no-sse.install b/debian/netdata-core-no-sse.install new file mode 120000 index 000000000..0392bb314 --- /dev/null +++ b/debian/netdata-core-no-sse.install @@ -0,0 +1 @@ +netdata-core.install \ No newline at end of file diff --git a/debian/netdata-core-no-sse.lintian-overrides b/debian/netdata-core-no-sse.lintian-overrides new file mode 100644 index 000000000..ee908859c --- /dev/null +++ b/debian/netdata-core-no-sse.lintian-overrides @@ -0,0 +1,6 @@ +# See Debian policy 10.9. apps.plugin has extra capabilities, so don't let +# normal users run it. +netdata-core-no-sse: non-standard-executable-perm usr/lib/*/netdata/plugins.d/apps.plugin 0754 != 0755 + +# freeipmi plugin +netdata-core-no-sse: setuid-binary usr/lib/x86_64-linux-gnu/netdata/plugins.d/freeipmi.plugin 4754 root/root diff --git a/debian/netdata-core-no-sse.maintscript b/debian/netdata-core-no-sse.maintscript new file mode 120000 index 000000000..172440be6 --- /dev/null +++ b/debian/netdata-core-no-sse.maintscript @@ -0,0 +1 @@ +netdata-core.maintscript \ No newline at end of file diff --git a/debian/netdata-core-no-sse.manpages b/debian/netdata-core-no-sse.manpages new file mode 120000 index 000000000..a1bcd67c9 --- /dev/null +++ b/debian/netdata-core-no-sse.manpages @@ -0,0 +1 @@ +netdata-core.manpages \ No newline at end of file diff --git a/debian/netdata-core-no-sse.netdata.init b/debian/netdata-core-no-sse.netdata.init new file mode 120000 index 000000000..127fb0a0b --- /dev/null +++ b/debian/netdata-core-no-sse.netdata.init @@ -0,0 +1 @@ +netdata-core.netdata.init \ No newline at end of file diff --git a/debian/netdata-core-no-sse.netdata.logrotate b/debian/netdata-core-no-sse.netdata.logrotate new file mode 120000 index 000000000..c3eda3bf7 --- /dev/null +++ b/debian/netdata-core-no-sse.netdata.logrotate @@ -0,0 +1 @@ +netdata-core.netdata.logrotate \ No newline at end of file diff --git a/debian/netdata-core-no-sse.netdata.service b/debian/netdata-core-no-sse.netdata.service new file mode 120000 index 000000000..d1c2116e0 --- /dev/null +++ b/debian/netdata-core-no-sse.netdata.service @@ -0,0 +1 @@ +netdata-core.netdata.service \ No newline at end of file diff --git a/debian/netdata-core-no-sse.postinst b/debian/netdata-core-no-sse.postinst new file mode 120000 index 000000000..1199fe923 --- /dev/null +++ b/debian/netdata-core-no-sse.postinst @@ -0,0 +1 @@ +netdata-core.postinst \ No newline at end of file diff --git a/debian/netdata-core-no-sse.postrm b/debian/netdata-core-no-sse.postrm new file mode 120000 index 000000000..6f58bdaff --- /dev/null +++ b/debian/netdata-core-no-sse.postrm @@ -0,0 +1 @@ +netdata-core.postrm \ No newline at end of file diff --git a/debian/rules b/debian/rules index f30e70131..6ad8b2309 100755 --- a/debian/rules +++ b/debian/rules @@ -2,6 +2,8 @@ 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))) @@ -38,14 +40,52 @@ override_dh_autoreconf_clean: dh_autoreconf_clean +override_dh_auto_clean: + dh_auto_clean + + rm -rf build-optimized + rm -rf build-no-sse debian/tmp-no-sse + override_dh_auto_configure: - dh_auto_configure -- --libdir=/usr/lib --libexecdir=/usr/lib --disable-x86-sse --enable-plugin-freeipmi --with-math + mkdir -p build-optimized + dh_auto_configure -B build-optimized -- --libdir=/usr/lib --libexecdir=/usr/lib --enable-x86-sse --enable-plugin-freeipmi --with-math + cp -a web/gui/src build-optimized/web/gui + +ifdef $(findstring no-sse,$(PACKAGES)) + mkdir -p build-no-sse + dh_auto_configure -B build-no-sse -- --libdir=/usr/lib --libexecdir=/usr/lib --disable-x86-sse --disable-plugin-freeipmi --with-math + cp -a web/gui/src build-no-sse/web/gui +endif + +override_dh_auto_build: + dh_auto_build -B build-optimized + +ifdef $(findstring no-sse,$(PACKAGES)) + dh_auto_build -B build-no-sse +endif + +override_dh_auto_install: + dh_auto_install -B build-optimized -- DESTDIR=$(CURDIR)/debian/tmp + +ifdef $(findstring no-sse,$(PACKAGES)) + dh_auto_install -B build-no-sse -- DESTDIR=$(CURDIR)/debian/tmp-no-sse +endif override_dh_install: - # Remove unneeded .keep files - find debian/tmp -name .keep -delete +ifdef $(findstring no-sse,$(PACKAGES)) + find debian/tmp-no-sse -name .keep -delete + dh_install -p netdata-core-no-sse --sourcedir=debian/tmp-no-sse - dh_install + mkdir -p $(TOP)-core-no-sse/usr/lib/netdata/plugins.d + for plugin in cgroup-network apps.plugin freeipmi.plugin; \ + do \ + cp debian/tmp-no-sse/usr/lib/netdata/plugins.d/$${plugin} \ + $(TOP)-core-no-sse/usr/lib/netdata/plugins.d; \ + done +endif + + find debian/tmp -name .keep -delete + dh_install --remaining-packages # Move architecture dependent plugins mkdir -p $(TOP)-core/usr/lib/netdata/plugins.d @@ -76,14 +116,17 @@ override_dh_install-indep: 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 --remaining-packages + dh_installsystemd -p netdata-core-no-sse --name=netdata + dh_installinit --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_missing: @@ -96,6 +139,10 @@ override_dh_fixperms-arch: # 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/freeipmi.plugin +ifdef $(findstring 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/freeipmi.plugin +endif 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 -- cgit v1.2.3