0
0
Fork 0
mirror of https://github.com/netdata/netdata.git synced 2025-04-28 14:42:31 +00:00
netdata_netdata/packaging/build-package.sh
Costa Tsaousis b75958a4ab
initial implementation of libbacktrace (#19910)
* initial implementation of libbacktrace

* in buildinfo show the parameters of libbacktrace

* do not disable libbacktrace if threading is not supported

* Don’t install libbacktrace, only build it.

* Disable libbacktrace for 32-bit ARM builds.

* Make libunwind and libbacktrace mutually exclusive at configure time.

Instead of relying on it being mutually exclusive at build time. This
ensures we don’t waste time on libunwind when using libbacktrace.

* Only use libbacktrace on Linux and Windows

* Work around broken logic in openSUSE rpmbuild.

* Fix handling of libbacktrace for 32-bit ARM static builds.

---------

Co-authored-by: Austin S. Hemmelgarn <austin@netdata.cloud>
2025-03-21 17:44:17 +00:00

106 lines
3.1 KiB
Bash
Executable file

#!/bin/sh
#
# Invoked by the package builder images to actually build native packages.
set -e
PKG_TYPE="${1}"
BUILD_DIR="${2}"
SCRIPT_SOURCE="$(
self=${0}
while [ -L "${self}" ]
do
cd "${self%/*}" || exit 1
self=$(readlink "${self}")
done
cd "${self%/*}" || exit 1
echo "$(pwd -P)/${self##*/}"
)"
SOURCE_DIR="$(dirname "$(dirname "${SCRIPT_SOURCE}")")"
CMAKE_ARGS="-S ${SOURCE_DIR} -B ${BUILD_DIR}"
add_cmake_option() {
CMAKE_ARGS="${CMAKE_ARGS} -D${1}=${2}"
}
add_cmake_option CMAKE_BUILD_TYPE RelWithDebInfo
add_cmake_option CMAKE_INSTALL_PREFIX /
add_cmake_option ENABLE_DASHBOARD on
add_cmake_option ENABLE_DBENGINE On
add_cmake_option ENABLE_H2O Off
add_cmake_option ENABLE_ML On
add_cmake_option ENABLE_PLUGIN_APPS On
add_cmake_option ENABLE_PLUGIN_CGROUP_NETWORK On
add_cmake_option ENABLE_PLUGIN_DEBUGFS On
add_cmake_option ENABLE_PLUGIN_FREEIPMI On
add_cmake_option ENABLE_PLUGIN_GO On
add_cmake_option ENABLE_PLUGIN_PYTHON On
add_cmake_option ENABLE_PLUGIN_CHARTS On
add_cmake_option ENABLE_PLUGIN_LOCAL_LISTENERS On
add_cmake_option ENABLE_PLUGIN_NFACCT On
add_cmake_option ENABLE_PLUGIN_PERF On
add_cmake_option ENABLE_PLUGIN_SLABINFO On
add_cmake_option ENABLE_PLUGIN_SYSTEMD_JOURNAL On
add_cmake_option ENABLE_EXPORTER_PROMETHEUS_REMOTE_WRITE On
add_cmake_option ENABLE_EXPORTER_MONGODB On
add_cmake_option ENABLE_BUNDLED_PROTOBUF Off
add_cmake_option ENABLE_BUNDLED_JSONC Off
add_cmake_option ENABLE_BUNDLED_YAML Off
add_cmake_option ENABLE_LIBBACKTRACE On
add_cmake_option BUILD_FOR_PACKAGING On
case "${PKG_TYPE}" in
DEB)
case "$(dpkg-architecture -q DEB_TARGET_ARCH)" in
amd64)
add_cmake_option ENABLE_PLUGIN_XENSTAT On
add_cmake_option ENABLE_PLUGIN_EBPF On
;;
arm64)
add_cmake_option ENABLE_PLUGIN_XENSTAT On
add_cmake_option ENABLE_PLUGIN_EBPF Off
;;
armhf)
add_cmake_option ENABLE_PLUGIN_XENSTAT Off
add_cmake_option ENABLE_PLUGIN_EBPF Off
;;
*)
add_cmake_option ENABLE_PLUGIN_XENSTAT Off
add_cmake_option ENABLE_PLUGIN_EBPF Off
;;
esac
;;
RPM) ;;
*) echo "Unrecognized package type ${PKG_TYPE}." ; exit 1 ;;
esac
if [ "${ENABLE_SENTRY}" = "true" ]; then
if [ -z "${SENTRY_DSN}" ]; then
echo "ERROR: Sentry enabled but no DSN specified, exiting."
exit 1
fi
add_cmake_option ENABLE_SENTRY On
add_cmake_option NETDATA_SENTRY_ENVIRONMENT "${RELEASE_PIPELINE:-Unknown}"
add_cmake_option NETDATA_SENTRY_DIST "${BUILD_DESTINATION:-Unknown}"
add_cmake_option NETDATA_SENTRY_DSN "${SENTRY_DSN}"
else
add_cmake_option ENABLE_SENTRY Off
fi
# shellcheck disable=SC2086
cmake ${CMAKE_ARGS} -G Ninja
cmake --build "${BUILD_DIR}" --parallel "$(nproc)" -- -k 1
if [ "${ENABLE_SENTRY}" = "true" ] && [ "${UPLOAD_SENTRY}" = "true" ]; then
sentry-cli debug-files upload -o netdata-inc -p netdata-agent --force-foreground --log-level=debug --wait --include-sources build/netdata
fi
cd "${BUILD_DIR}" || exit 1
cpack -V -G "${PKG_TYPE}"