summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTasos Katsoulas <12612986+tkatsoulas@users.noreply.github.com>2023-11-06 18:40:01 +0200
committerGitHub <noreply@github.com>2023-11-06 18:40:01 +0200
commit77996e73eedbcfba043b02902934f64d147a9c13 (patch)
treea0fd78b8bfaee169fe4c30e1b7d5bf27062ff228
parentece352867ce5c006837e0d1ed4367eeed9bc57ea (diff)
Update packaging instructions (#16344)
1. Add repo clean up instructions for the netdata/netdata repo (clean up from previous builds) 2. Make the static build instruction to use the more generic script --------- Signed-off-by: Tasos Katsoulas <tasos@netdata.cloud> Co-authored-by: Austin S. Hemmelgarn <austin@netdata.cloud>
-rw-r--r--packaging/installer/methods/manual.md20
-rw-r--r--packaging/installer/methods/source.md4
-rw-r--r--packaging/makeself/README.md17
3 files changed, 37 insertions, 4 deletions
diff --git a/packaging/installer/methods/manual.md b/packaging/installer/methods/manual.md
index 789f8aaab5..269b67c1a9 100644
--- a/packaging/installer/methods/manual.md
+++ b/packaging/installer/methods/manual.md
@@ -22,6 +22,9 @@ To install the latest git version of Netdata, please follow these 2 steps:
## Prepare your system
+Before you begin, make sure that your repo and the repo's submodules are clean from any previous builds and up to date.
+Otherwise, [perform a cleanup](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/manual.md#perform-a-cleanup-in-your-netdata-repo)
+
Use our automatic requirements installer (_no need to be `root`_), which attempts to find the packages that
should be installed on your system to build and run Netdata. It supports a large variety of major Linux distributions
and other operating systems and is regularly tested. You can find this tool [here](https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/install-required-packages.sh) or run it directly with `bash <(curl -sSL https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/install-required-packages.sh)`. Otherwise read on for how to get requires packages manually:
@@ -226,3 +229,20 @@ Our current build process unfortunately has some issues when using certain confi
If the installation fails with errors like `/bin/ld: externaldeps/libwebsockets/libwebsockets.a(context.c.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC`, and you are trying to build with `clang` on Linux, you will need to build Netdata using GCC to get a fully functional install.
In most cases, you can do this by running `CC=gcc ./netdata-installer.sh`.
+
+
+### Perform a cleanup in your netdata repo
+
+The Netdata repo consist of the main git tree and it's submodules. Either working on a fork or on the main repo you need to make sure that there
+are no "leftover" artifacts from previous builds and that your submodules are up to date to the **corresponding checkouts**.
+
+> #### Important: Make sure that you have commited any work in progress, before you proceed the with the clean up instruction below
+
+
+```sh
+git clean -dfx && git submodule foreach 'git clean -dfx' && git submodule update --recursive --init
+```
+
+
+> Note: In previous builds, you may have created artifacts belonging to an another user (e.g root), so you may need to run
+> each of the _git clean_ commands as sudoer.
diff --git a/packaging/installer/methods/source.md b/packaging/installer/methods/source.md
index 7b6b88d4b3..8f34218a22 100644
--- a/packaging/installer/methods/source.md
+++ b/packaging/installer/methods/source.md
@@ -50,7 +50,11 @@ which the the build system will link statically into Netdata. These
libraries and their header files must be copied into specific locations
in the source tree to be used.
+Before you begin, make sure that your repo and the repo's submodules are clean from any previous builds and up to date.
+Otherwise, [perform a cleanup](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/manual.md#perform-a-cleanup-in-your-netdata-repo)
+
### Netdata cloud
+
#### JSON-C
Netdata requires the use of JSON-C for JSON parsing when using Netdata
diff --git a/packaging/makeself/README.md b/packaging/makeself/README.md
index 9219aefc51..1f2c746bfa 100644
--- a/packaging/makeself/README.md
+++ b/packaging/makeself/README.md
@@ -19,13 +19,20 @@ will be used by default for installation.
If you want to enforce the usage of a static build and have the installer return a failure if one is not available,
you can do so by adding `--static-only` to the options you pass to the installer.
+## Requirements
+
+- Container runtime tool (Docker or Podman)
+
## Building a static binary package
-To build the static binary 64-bit distribution package, run:
+Before you begin, make sure that your repo and the repo's submodules are clean from any previous builds and up to date.
+Otherwise, [perform a cleanup](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/manual.md#perform-a-cleanup-in-your-netdata-repo)
+
+
+To build the static binary 64-bit distribution package, into the root folder on the netdata repo, run:
```bash
-cd /path/to/netdata.git
-./packaging/makeself/build-x86_64-static.sh
+./packaging/makeself/build-static.sh x86_64
```
The program will:
@@ -37,13 +44,15 @@ The program will:
Once finished, a file named `netdata-vX.X.X-gGITHASH-x86_64-DATE-TIME.run` will be created in the current directory. This is the Netdata binary package that can be run to install Netdata on any other computer.
+You can build static binaries for other architectures such as `armv7l`, `aarch64`, and `ppc64le`.
+
## Building binaries with debug info
To build Netdata binaries with debugging / tracing information in them, use:
```bash
cd /path/to/netdata.git
-./packaging/makeself/build-x86_64-static.sh debug
+./packaging/makeself/build-static.sh x86_64 debug
```
These binaries are not optimized (they are a bit slower), they have certain features disables (like log flood protection), other features enables (like `debug flags`) and are not stripped (the binary files are bigger, since they now include source code tracing information).