mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-15 16:07:26 +00:00
fa7ee06bd6
Added a PACKAGECONFIG to select the version of the WebUI to be installed. When not set, all versions (v0, v1 and v2) will be installed. What is the default of Netdata. Enabling only the v1 version makes the package 25% smaller. More info: https://github.com/netdata/netdata/issues/15640#issuecomment-1946041083 Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
156 lines
6.7 KiB
BlitzBasic
156 lines
6.7 KiB
BlitzBasic
SUMMARY = "Real-time performance monitoring"
|
|
DESCRIPTION = "Netdata is high-fidelity infrastructure monitoring and troubleshooting. \
|
|
Open-source, free, preconfigured, opinionated, and always real-time."
|
|
HOMEPAGE = "https://github.com/netdata/netdata/"
|
|
LICENSE = "GPL-3.0-only"
|
|
LIC_FILES_CHKSUM = "file://LICENSE;md5=fc9b848046ef54b5eaee6071947abd24"
|
|
|
|
DEPENDS += "\
|
|
json-c \
|
|
libuv \
|
|
libyaml \
|
|
lz4 \
|
|
util-linux \
|
|
zlib \
|
|
"
|
|
|
|
SRC_URI = "\
|
|
https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BPN}-v${PV}.tar.gz \
|
|
file://0002-Do-not-hardcode-systemd-unit-directories.patch \
|
|
file://netdata.conf \
|
|
file://netdata-volatiles.conf \
|
|
${@bb.utils.contains('PACKAGECONFIG', 'go', 'file://go.d.conf', '', d)} \
|
|
"
|
|
SRC_URI[sha256sum] = "8073eee2392f92daa1f8bb5cf13fb988b8c3b52ff9574b50706ff69bdbdb51ce"
|
|
|
|
UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/tags"
|
|
UPSTREAM_CHECK_REGEX = "${BPN}/releases/tag/v(?P<pver>(?!1\.99)\d+(?:\.\d+)*)"
|
|
|
|
S = "${UNPACKDIR}/${BPN}-v${PV}"
|
|
|
|
# Stop sending anonymous statistics to Google Analytics
|
|
NETDATA_ANONYMOUS ??= "enabled"
|
|
|
|
inherit pkgconfig useradd systemd
|
|
# Inherit cmake last to use its do_compile task (and not go's)
|
|
inherit_defer ${@bb.utils.filter("PACKAGECONFIG", "go", d)} cmake
|
|
|
|
TARGET_CC_ARCH:append:libc-musl = " -D_LARGEFILE64_SOURCE"
|
|
|
|
LIBS:toolchain-clang:x86 = "-latomic"
|
|
LIBS:riscv64 = "-latomic"
|
|
LIBS:riscv32 = "-latomic"
|
|
LIBS:mips = "-latomic"
|
|
export LIBS
|
|
|
|
# Skip go.d plugins QA issues
|
|
CFLAGS += "${@bb.utils.contains('PACKAGECONFIG', 'go', \
|
|
'-Wno-aggressive-loop-optimizations -Wno-nonnull -Wno-stringop-overflow' \
|
|
, '', d)}"
|
|
INSANE_SKIP:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'go', 'already-stripped buildpaths', '', d)}"
|
|
|
|
# network is required by go to get dependent packages
|
|
do_compile[network] = "1"
|
|
|
|
#systemd
|
|
SYSTEMD_PACKAGES = "${PN}"
|
|
export SERVICE_FILES = "netdata.service netdata-updater.service netdata-updater.timer"
|
|
SYSTEMD_SERVICE:${PN} = "${SERVICE_FILES}"
|
|
SYSTEMD_AUTO_ENABLE:${PN} = "enable"
|
|
|
|
#User specific
|
|
USERADD_PACKAGES = "${PN}"
|
|
USERADD_PARAM:${PN} = "--system --no-create-home --home-dir ${localstatedir}/run/netdata \
|
|
${@bb.utils.contains('PACKAGECONFIG','docker','--groups docker','',d)} --user-group netdata"
|
|
|
|
PACKAGECONFIG ??= "openssl freeipmi ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
|
|
PACKAGECONFIG[brotli] = ",,brotli"
|
|
PACKAGECONFIG[cloud] = "-DENABLE_CLOUD=ON,-DENABLE_CLOUD=OFF,"
|
|
PACKAGECONFIG[openssl] = "-DENABLE_OPENSSL=ON,-DENABLE_OPENSSL=OFF,openssl"
|
|
PACKAGECONFIG[freeipmi] = "-DENABLE_PLUGIN_FREEIPMI=ON,-DENABLE_PLUGIN_FREEIPMI=OFF,freeipmi"
|
|
PACKAGECONFIG[nfacct] = "-DENABLE_PLUGIN_NFACCT=ON,-DENABLE_PLUGIN_NFACCT=OFF,libmnl"
|
|
# needs meta-virtualization
|
|
PACKAGECONFIG[xenstat] = "-DENABLE_PLUGIN_XENSTAT=ON,-DENABLE_PLUGIN_XENSTAT=OFF,xen-tools"
|
|
PACKAGECONFIG[cups] = "-DENABLE_PLUGIN_CUPS=ON,-DENABLE_PLUGIN_CUPS=OFF,cups"
|
|
PACKAGECONFIG[systemd] = "-DENABLE_PLUGIN_SYSTEMD_JOURNAL=ON,-DENABLE_PLUGIN_SYSTEMD_JOURNAL=OFF,systemd"
|
|
PACKAGECONFIG[docker] = ",,virtual/docker, virtual/docker"
|
|
PACKAGECONFIG[go] = "-DENABLE_PLUGIN_GO=ON, -DENABLE_PLUGIN_GO=OFF"
|
|
# WebUI (packageconfig not set: v0, v1 & v2)
|
|
PACKAGECONFIG[webui_v0] = ",,,,,webui_v1 webui_v2"
|
|
PACKAGECONFIG[webui_v1] = ",,,,,webui_v0 webui_v2"
|
|
PACKAGECONFIG[webui_v2] = ",,,,,webui_v0 webui_v1"
|
|
|
|
# ebpf doesn't compile (or detect) the cross compilation well
|
|
EXTRA_OECMAKE += "-DENABLE_PLUGIN_EBPF=OFF -DBUILD_FOR_PACKAGING=${@bb.utils.contains('DISTRO_FEATURES','systemd','ON','OFF',d)} \
|
|
-DENABLE_ACLK=OFF -DENABLE_EXPORTER_PROMETHEUS_REMOTE_WRITE=OFF -DCMAKE_INSTALL_PREFIX='${base_prefix}'"
|
|
|
|
do_compile:append() {
|
|
# Go dependencies are protected with read-only permissions, but would prevent cleaning
|
|
if ${@bb.utils.contains('PACKAGECONFIG', 'go', 'true', 'false', d)}; then
|
|
chmod -R a+w ${B}/pkg
|
|
fi
|
|
}
|
|
|
|
do_install:append() {
|
|
#set S UID for plugins
|
|
chown root:netdata ${D}${libexecdir}/netdata/plugins.d/apps.plugin
|
|
chmod 4750 ${D}${libexecdir}/netdata/plugins.d/apps.plugin
|
|
rm -rf ${D}/${localstatedir}/
|
|
|
|
if ${@bb.utils.contains('PACKAGECONFIG', 'xenstat', 'true', 'false', d)}; then
|
|
# Set S UID for xenstat plugin
|
|
chown root:netdata ${D}${libexecdir}/netdata/plugins.d/xenstat.plugin
|
|
chmod 4750 ${D}${libexecdir}/netdata/plugins.d/xenstat.plugin
|
|
fi
|
|
|
|
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
|
|
# Install systemd unit files
|
|
install -Dm 0644 ${UNPACKDIR}/netdata-volatiles.conf ${D}${sysconfdir}/tmpfiles.d/netdata.conf
|
|
fi
|
|
|
|
# Install default netdata.conf
|
|
install -d ${D}${sysconfdir}/netdata
|
|
install -m 0644 ${UNPACKDIR}/netdata.conf ${D}${sysconfdir}/netdata/
|
|
if ${@bb.utils.contains('PACKAGECONFIG', 'go', 'true', 'false', d)}; then
|
|
install -m 0644 ${UNPACKDIR}/go.d.conf ${D}${sysconfdir}/netdata/
|
|
fi
|
|
sed -i -e 's,@@datadir,${datadir},g' ${D}${sysconfdir}/netdata/netdata.conf
|
|
sed -i -e 's,@@libdir,${libdir},g' ${D}${sysconfdir}/netdata/netdata.conf
|
|
sed -i -e 's,@@libexecdir,${libexecdir},g' ${D}${sysconfdir}/netdata/netdata.conf
|
|
sed -i -e 's,@@localstatedir,${localstatedir},g' ${D}${sysconfdir}/netdata/netdata.conf
|
|
sed -i -e 's,@@sysconfdir,${sysconfdir},g' ${D}${sysconfdir}/netdata/netdata.conf
|
|
|
|
if [ "${NETDATA_ANONYMOUS}" = "enabled" ]; then
|
|
touch ${D}${sysconfdir}/netdata/.opt-out-from-anonymous-statistics
|
|
fi
|
|
|
|
install --group netdata --owner netdata --directory ${D}${localstatedir}/cache/netdata
|
|
install --group netdata --owner netdata --directory ${D}${localstatedir}/lib/netdata
|
|
|
|
# webUI
|
|
if "${@bb.utils.contains('PACKAGECONFIG', 'webui_v0', 'true', 'false', d)}"; then
|
|
rm -rf ${D}${datadir}/netdata/web/v1
|
|
rm -rf ${D}${datadir}/netdata/web/v2
|
|
install -m 0644 ${D}${datadir}/netdata/web/v0/index.html ${D}${datadir}/netdata/web/
|
|
fi
|
|
if "${@bb.utils.contains('PACKAGECONFIG', 'webui_v1', 'true', 'false', d)}"; then
|
|
rm -rf ${D}${datadir}/netdata/web/v0
|
|
rm -rf ${D}${datadir}/netdata/web/v2
|
|
install -m 0644 ${D}${datadir}/netdata/web/v1/index.html ${D}${datadir}/netdata/web/
|
|
fi
|
|
if "${@bb.utils.contains('PACKAGECONFIG', 'webui_v2', 'true', 'false', d)}"; then
|
|
rm -rf ${D}${datadir}/netdata/web/v0
|
|
rm -rf ${D}${datadir}/netdata/web/v1
|
|
install -m 0644 ${D}${datadir}/netdata/web/v2/index.html ${D}${datadir}/netdata/web/
|
|
fi
|
|
chown -R netdata:netdata ${D}${datadir}/netdata/web
|
|
}
|
|
|
|
FILES:${PN} += "\
|
|
${localstatedir}/cache/netdata/ \
|
|
${localstatedir}/lib/netdata/ \
|
|
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/journald@netdata.conf.d', '', d)} \
|
|
"
|
|
|
|
RDEPENDS:${PN} = "bash python3-core zlib"
|