@cryptotaxi247 / netdata-1 / commits / bbd591a8a

Fix DEB package builds. (#17765)

* Check for supplementary components in libexec during runtime checks. This should catch issues like what the PR it’s part of is fixing. * Fix building DEB packages with CPack. This both disables the logs-management plugin in the builds (which has never actually worked properly in our packages for multiple reasons) and fixes a botched merge involving the OS detection in the build system. * Fix up CI checks.

Austin S. Hemmelgarn committed May 28, 2024 at 13:07 UTC bbd591a8a738b84deee4454a3563b22b38314c06
5 files changed +68 -14
.github/scripts/pkg-test.sh
+7
@@ -120,6 +120,13 @@ esac
120
121 trap dump_log EXIT
122
123 +export NETDATA_LIBEXEC_PREFIX=/usr/libexec/netdata
124 +export NETDATA_SKIP_LIBEXEC_PARTS="logs-management|freeipmi|xenstat|nfacct|cups"
125 +
126 +if [ "$(uname -m)" != "x86_64" ]; then
127 + export NETDATA_SKIP_LIBEXEC_PARTS="${NETDATA_SKIP_LIBEXEC_PARTS}|ebpf"
128 +fi
129 +
130 /usr/sbin/netdata -D > ./netdata.log 2>&1 &
131
132 "${SCRIPT_DIR}/../../packaging/runtime-check.sh" || exit 1
CMakeLists.txt
+13 -13
@@ -141,23 +141,23 @@ option(ENABLE_DBENGINE "Enable dbengine metrics storage" True)
141 option(ENABLE_PLUGIN_APPS "Enable per-process resource usage monitoring" ${DEFAULT_FEATURE_STATE})
142 option(ENABLE_PLUGIN_GO "Enable metric collectors written in Go" ${DEFAULT_FEATURE_STATE})
143
144 -cmake_dependent_option(ENABLE_PLUGIN_CUPS "Enable CUPS monitoring" ${DEFAULT_FEATURE_STATE} "LINUX OR FREEBSD OR MACOS" False)
144 +cmake_dependent_option(ENABLE_PLUGIN_CUPS "Enable CUPS monitoring" ${DEFAULT_FEATURE_STATE} "OS_LINUX OR OS_FREEBSD OR OS_MACOS" False)
145
146 -cmake_dependent_option(ENABLE_PLUGIN_FREEIPMI "Enable IPMI monitoring" ${DEFAULT_FEATURE_STATE} "LINUX OR FREEBSD" False)
146 +cmake_dependent_option(ENABLE_PLUGIN_FREEIPMI "Enable IPMI monitoring" ${DEFAULT_FEATURE_STATE} "OS_LINUX OR OS_FREEBSD" False)
147
148 -cmake_dependent_option(ENABLE_PLUGIN_CGROUP_NETWORK "Enable Linux CGroup network usage monitoring" ${DEFAULT_FEATURE_STATE} "LINUX" False)
149 -cmake_dependent_option(ENABLE_PLUGIN_DEBUGFS "Enable Linux DebugFS metric collection" ${DEFAULT_FEATURE_STATE} "LINUX" False)
150 -cmake_dependent_option(ENABLE_PLUGIN_EBPF "Enable Linux eBPF metric collection" ${DEFAULT_FEATURE_STATE} "LINUX" False)
148 +cmake_dependent_option(ENABLE_PLUGIN_CGROUP_NETWORK "Enable Linux CGroup network usage monitoring" ${DEFAULT_FEATURE_STATE} "OS_LINUX" False)
149 +cmake_dependent_option(ENABLE_PLUGIN_DEBUGFS "Enable Linux DebugFS metric collection" ${DEFAULT_FEATURE_STATE} "OS_LINUX" False)
150 +cmake_dependent_option(ENABLE_PLUGIN_EBPF "Enable Linux eBPF metric collection" ${DEFAULT_FEATURE_STATE} "OS_LINUX" False)
151 cmake_dependent_option(ENABLE_LEGACY_EBPF_PROGRAMS "Enable eBPF programs for kernels without BTF support" True "ENABLE_PLUGIN_EBPF" False)
152 mark_as_advanced(ENABLE_LEGACY_EBPF_PROGRAMS)
153 -cmake_dependent_option(ENABLE_PLUGIN_LOCAL_LISTENERS "Enable local listening socket tracking (including service auto-discovery support)" ${DEFAULT_FEATURE_STATE} "LINUX" False)
154 -cmake_dependent_option(ENABLE_PLUGIN_LOGS_MANAGEMENT "Enable log collection and monitoring based on Fluent Bit" ${DEFAULT_FEATURE_STATE} "LINUX" False)
155 -cmake_dependent_option(ENABLE_PLUGIN_NETWORK_VIEWER "Enable network viewer functionality" ${DEFAULT_FEATURE_STATE} "LINUX" False)
156 -cmake_dependent_option(ENABLE_PLUGIN_NFACCT "Enable Linux NFACCT metric collection" ${DEFAULT_FEATURE_STATE} "LINUX" False)
157 -cmake_dependent_option(ENABLE_PLUGIN_PERF "Enable Linux performance counter monitoring" ${DEFAULT_FEATURE_STATE} "LINUX" False)
158 -cmake_dependent_option(ENABLE_PLUGIN_SLABINFO "Enable Linux kernel SLAB allocator monitoring" ${DEFAULT_FEATURE_STATE} "LINUX" False)
159 -cmake_dependent_option(ENABLE_PLUGIN_SYSTEMD_JOURNAL "Enable systemd journal log collection" ${DEFAULT_FEATURE_STATE} "LINUX" False)
160 -cmake_dependent_option(ENABLE_PLUGIN_XENSTAT "Enable Xen domain monitoring" ${DEFAULT_FEATURE_STATE} "LINUX" False)
153 +cmake_dependent_option(ENABLE_PLUGIN_LOCAL_LISTENERS "Enable local listening socket tracking (including service auto-discovery support)" ${DEFAULT_FEATURE_STATE} "OS_LINUX" False)
154 +cmake_dependent_option(ENABLE_PLUGIN_LOGS_MANAGEMENT "Enable log collection and monitoring based on Fluent Bit" ${DEFAULT_FEATURE_STATE} "OS_LINUX" False)
155 +cmake_dependent_option(ENABLE_PLUGIN_NETWORK_VIEWER "Enable network viewer functionality" ${DEFAULT_FEATURE_STATE} "OS_LINUX" False)
156 +cmake_dependent_option(ENABLE_PLUGIN_NFACCT "Enable Linux NFACCT metric collection" ${DEFAULT_FEATURE_STATE} "OS_LINUX" False)
157 +cmake_dependent_option(ENABLE_PLUGIN_PERF "Enable Linux performance counter monitoring" ${DEFAULT_FEATURE_STATE} "OS_LINUX" False)
158 +cmake_dependent_option(ENABLE_PLUGIN_SLABINFO "Enable Linux kernel SLAB allocator monitoring" ${DEFAULT_FEATURE_STATE} "OS_LINUX" False)
159 +cmake_dependent_option(ENABLE_PLUGIN_SYSTEMD_JOURNAL "Enable systemd journal log collection" ${DEFAULT_FEATURE_STATE} "OS_LINUX" False)
160 +cmake_dependent_option(ENABLE_PLUGIN_XENSTAT "Enable Xen domain monitoring" ${DEFAULT_FEATURE_STATE} "OS_LINUX" False)
161
162 # Metrics exporters
163 option(ENABLE_EXPORTER_PROMETHEUS_REMOTE_WRITE "Enable exporting to Prometheus via remote write API" ${DEFAULT_FEATURE_STATE})
packaging/build-package.sh
+1 -1
@@ -38,7 +38,7 @@ add_cmake_option ENABLE_PLUGIN_DEBUGFS On
38 add_cmake_option ENABLE_PLUGIN_FREEIPMI On
39 add_cmake_option ENABLE_PLUGIN_GO On
40 add_cmake_option ENABLE_PLUGIN_LOCAL_LISTENERS On
41 -add_cmake_option ENABLE_PLUGIN_LOGS_MANAGEMENT On
41 +add_cmake_option ENABLE_PLUGIN_LOGS_MANAGEMENT Off
42 add_cmake_option ENABLE_PLUGIN_NFACCT On
43 add_cmake_option ENABLE_PLUGIN_PERF On
44 add_cmake_option ENABLE_PLUGIN_SLABINFO On
packaging/makeself/jobs/90-netdata-runtime-check.sh
+7
@@ -10,6 +10,13 @@ dump_log() {
10
11 trap dump_log EXIT
12
13 +export NETDATA_LIBEXEC_PREFIX="${NETDATA_INSTALL_PATH}/usr/libexec/netdata"
14 +export NETDATA_SKIP_LIBEXEC_PARTS="logs-management|freeipmi|xenstat|cups"
15 +
16 +if [ "$(uname -m)" != "x86_64" ]; then
17 + export NETDATA_SKIP_LIBEXEC_PARTS="${NETDATA_SKIP_LIBEXEC_PARTS}|ebpf"
18 +fi
19 +
20 "${NETDATA_INSTALL_PATH}/bin/netdata" -D > ./netdata.log 2>&1 &
21
22 "${NETDATA_SOURCE_PATH}/packaging/runtime-check.sh" || exit 1
packaging/runtime-check.sh
+40
@@ -48,3 +48,43 @@ curl -sfS http://127.0.0.1:19999/index.html || exit 1
48 curl -sfS http://127.0.0.1:19999/v0/index.html || exit 1
49 curl -sfS http://127.0.0.1:19999/v1/index.html || exit 1
50 curl -sfS http://127.0.0.1:19999/v2/index.html || exit 1
51 +
52 +NETDATA_LIBEXEC_PARTS="
53 +plugins.d/apps.plugin
54 +plugins.d/cgroup-network
55 +plugins.d/charts.d.plugin
56 +plugins.d/cups.plugin
57 +plugins.d/debugfs.plugin
58 +plugins.d/ebpf.plugin
59 +plugins.d/freeipmi.plugin
60 +plugins.d/go.d.plugin
61 +plugins.d/ioping.plugin
62 +plugins.d/local-listeners
63 +plugins.d/logs-management.plugin
64 +plugins.d/ndsudo
65 +plugins.d/network-viewer.plugin
66 +plugins.d/nfacct.plugin
67 +plugins.d/perf.plugin
68 +plugins.d/python.d.plugin
69 +plugins.d/slabinfo.plugin
70 +plugins.d/xenstat.plugin
71 +"
72 +
73 +if [ -d "${NETDATA_LIBEXEC_PREFIX}" ]; then
74 + success=1
75 + for part in ${NETDATA_LIBEXEC_PARTS}; do
76 + # shellcheck disable=SC2254
77 + if echo "${part}" | grep -qE "${NETDATA_SKIP_LIBEXEC_PARTS}"; then
78 + continue
79 + fi
80 +
81 + if [ ! -x "${NETDATA_LIBEXEC_PREFIX}/${part}" ]; then
82 + success=0
83 + echo "!!! ${NETDATA_LIBEXEC_PREFIX}/${part} is missing"
84 + fi
85 + done
86 +
87 + if [ "${success}" -eq 0 ]; then
88 + exit 1
89 + fi
90 +fi