From a1fc979074a01fcabc73d764347aea7f1c4323f5 Mon Sep 17 00:00:00 2001 From: Ralph Meijer Date: Tue, 2 Apr 2024 15:20:00 +0000 Subject: Switch to using cmake directly. This build takes cues from `contrib/debian` and also directly adjusts the prefix to `/snap/netdata/current` and adjusts the default config to only the needed changes to point to `/var/snap/netdata/common` for config and `/current` for everything that goes into `/var`. Additionally, a lot of runtime dependencies are taken from snapcraft hints. --- snap/local/netdata.conf | 7 ---- snap/snapcraft.yaml | 102 +++++++++++++++++++++++++++++++++++------------- 2 files changed, 75 insertions(+), 34 deletions(-) diff --git a/snap/local/netdata.conf b/snap/local/netdata.conf index 283e151215..b5e8bf6357 100644 --- a/snap/local/netdata.conf +++ b/snap/local/netdata.conf @@ -1,16 +1,9 @@ [directories] config = /var/snap/netdata/common/etc/netdata - stock config = /snap/netdata/current/usr/lib/netdata/conf.d log = /var/snap/netdata/current/var/log/netdata - web = /var/snap/netdata/current/var/lib/netdata/www cache = /var/snap/netdata/current/var/cache/netdata lib = /var/snap/netdata/current/var/lib/netdata - lock = /var/snap/netdata/current/var/lib/netdata/lock - plugins = "/snap/netdata/current/usr/libexec/netdata/plugins.d" "/var/snap/netdata/common/etc/netdata/custom-plugins.d" home = /var/snap/netdata/current/var/lib/netdata - registry = /var/snap/netdata/current/var/lib/netdata/registry - stock health config = /snap/netdata/current/usr/lib/netdata/conf.d/health.d - health config = /var/snap/netdata/common/etc/netdata/health.d [plugin:proc] # Disable btrfs, as this cannot be accessed from within a snap diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 7f46a35169..dc66e85106 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -40,45 +40,93 @@ parts: bash ./packaging/installer/install-required-packages.sh --dont-wait --non-interactive -i netdata-all netdata: - plugin: nil + plugin: cmake source: . source-type: local + build-environment: + - CFLAGS: ${CFLAGS:-"-O2 pipe"} + - DESTDIR: $CRAFT_PART_INSTALL build-packages: + - golang + - libbrotli-dev + - libcap-dev + - libcups2-dev + - libipmimonitoring-dev + - libmongoc-dev + - libnetfilter-acct-dev - libpcre2-dev + - libprotobuf-dev + - libsnappy-dev + - libxen-dev + - protobuf-compiler + cmake-generator: Ninja + cmake-parameters: + - -DCMAKE_INSTALL_PREFIX=/snap/netdata/current + - -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 + - -DENABLE_PLUGIN_EBPF=On + - -DENABLE_PLUGIN_FREEIPMI=On + - -DENABLE_PLUGIN_GO=On + - -DENABLE_PLUGIN_LOCAL_LISTENERS=On + - -DENABLE_PLUGIN_LOGS_MANAGEMENT=On + - -DENABLE_PLUGIN_NFACCT=On + - -DENABLE_PLUGIN_PERF=On + - -DENABLE_PLUGIN_SLABINFO=On + - -DENABLE_PLUGIN_SYSTEMD_JOURNAL=On + - -DENABLE_PLUGIN_XENSTAT=On + - -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-build: | - sh ./netdata-installer.sh --dont-wait --dont-start-it --require-cloud --one-time-build - mkdir -p $SNAPCRAFT_PART_INSTALL/usr/sbin/ \ - $SNAPCRAFT_PART_INSTALL/usr/share \ - $SNAPCRAFT_PART_INSTALL/usr/libexec \ - $SNAPCRAFT_PART_INSTALL/usr/local \ - $SNAPCRAFT_PART_INSTALL/usr/lib \ - $SNAPCRAFT_PART_INSTALL/var/cache \ - $SNAPCRAFT_PART_INSTALL/var/lib \ - $SNAPCRAFT_PART_INSTALL/etc - rm -rf $SNAPCRAFT_PART_INSTALL/var/{cache,lib}/netdata - rm -rf $SNAPCRAFT_PART_INSTALL/usr/{share,lib,libexec}/netdata - mv /usr/share/netdata $SNAPCRAFT_PART_INSTALL/usr/share/ - mv /usr/libexec/netdata $SNAPCRAFT_PART_INSTALL/usr/libexec/ - mv /usr/lib/netdata $SNAPCRAFT_PART_INSTALL/usr/lib/ - mv /var/cache/netdata $SNAPCRAFT_PART_INSTALL/var/cache/ - mv /var/lib/netdata $SNAPCRAFT_PART_INSTALL/var/lib/ - mv /etc/netdata $SNAPCRAFT_PART_INSTALL/etc/ - mv /usr/sbin/log2journal $SNAPCRAFT_PART_INSTALL/usr/sbin/ - mv /usr/sbin/netdata $SNAPCRAFT_PART_INSTALL/usr/sbin/ - mv /usr/sbin/netdata-claim.sh $SNAPCRAFT_PART_INSTALL/usr/sbin/ - mv /usr/sbin/netdatacli $SNAPCRAFT_PART_INSTALL/usr/sbin/ - mv /usr/sbin/systemd-cat-native $SNAPCRAFT_PART_INSTALL/usr/sbin/ - cp -p "$SNAPCRAFT_PROJECT_DIR/snap/local/netdata.conf" "$SNAPCRAFT_PART_INSTALL/etc/netdata/netdata.conf" + craftctl default + mkdir -p $CRAFT_PART_INSTALL/etc/netdata + cp -p "$CRAFT_PROJECT_DIR/snap/local/netdata.conf" "$CRAFT_PART_INSTALL/etc/netdata/netdata.conf" + organize: + "snap/netdata/current": "/" stage-packages: + - apcupsd - curl - iproute2 + - iw + - libatm1 + - libavahi-client3 + - libavahi-common3 + - libbson-1.0-0 + - libcups2 + - libfreeipmi17 + - libipmimonitoring6 + - libmongoc-1.0-0 + - libmongocrypt0 + - libnetfilter-acct1 + - libsnappy1v5 + - libutf8proc3 - libuv1 + - libxencall1 + - libxendevicemodel1 + - libxenevtchn1 + - libxenforeignmemory1 + - libxengnttab1 + - libxenhypfs1 + - libxenmisc4.17 + - libxenstore4 + - libxentoolcore1 + - libxentoollog1 + - libyajl2 - lm-sensors + - nvme-cli - util-linux prime: - - -opt/netdata/var/cache/netdata/.keep - - -opt/netdata/var/lib/netdata/.keep - - -opt/netdata/var/log/netdata/.keep + - -snap/netdata + apps: agent: -- cgit v1.2.3