Start using new GitHub hosted ARM runners for CI when appropriate. (#19427)
* Start using new GitHub hosted ARM runners for CI when appropriate. * Fix matrix generation. * Fix actionlint error. * Don't fail fast for static builds. * Bump OpenSSL, cURL, and Bash versions for static builds. * Fix more actionlint errors. * Fix 32-bit ARM OpenSSL build. * Fix ppc64le static openssl build. * Fix duplicate key. * Fix openssl ppc64le build again. * Third attempt at fixing POWER8+ static builds. --------- Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
Austin S. Hemmelgarn committed
Feb 3, 2025 at 11:26 UTC
d7a9b829764992224809c2c0b2dc400bc561a6ac
9 files changed
+229
-76
.github/data/distros.yml
+37
@@ -6,7 +6,10 @@ platform_map: # map packaging architectures to docker platforms
6
arm64: linux/arm64/v8
7
armhf: linux/arm/v7
8
armhfp: linux/arm/v7
9
+ armv6l: linux/arm/v6
10
+ armv7l: linux/arm/v7
11
i386: linux/386
12
+ ppc64le: linux/ppc64le
13
x86_64: linux/amd64
14
arch_order: # sort order for per-architecture jobs in CI
15
- amd64
@@ -14,8 +17,42 @@ arch_order: # sort order for per-architecture jobs in CI
17
- i386
18
- armhf
19
- armhfp
20
+ - armv6l
21
+ - armv7l
22
- arm64
23
- aarch64
24
+ - ppc64le
25
+arch_data: # Mapping of per-architecture matrix behavior.
26
+ amd64: &amd64
27
+ qemu: false
28
+ runner: ubuntu-24.04
29
+ x86_64: *amd64
30
+ i386: *amd64
31
+ armhf: &arm
32
+ qemu: false
33
+ runner: ubuntu-24.04-arm
34
+ armhfp: *arm
35
+ armv6l: *arm
36
+ armv7l: *arm
37
+ arm64: &arm64
38
+ qemu: false
39
+ runner: ubuntu-24.04-arm
40
+ aarch64: *arm64
41
+ ppc64le:
42
+ qemu: true
43
+ runner: ubuntu-24.04
44
+static_arches: # Static build architectures
45
+ - x86_64
46
+ - armv6l
47
+ - armv7l
48
+ - aarch64
49
+ - ppc64le
50
+docker_arches: # Docker build archtiectures
51
+ - amd64
52
+ - i386
53
+ - armv7l
54
+ - arm64
55
+ - ppc64le
56
default_sentry: &default_sentry # Default configuration for Sentry usage
57
amd64: false
58
x86_64: false
.github/scripts/gen-matrix-docker.py
new
+23
@@ -0,0 +1,23 @@
1
+#!/usr/bin/env python3
2
+
3
+import json
4
+
5
+from ruamel.yaml import YAML
6
+
7
+yaml = YAML(typ='safe')
8
+entries = list()
9
+
10
+with open('.github/data/distros.yml') as f:
11
+ data = yaml.load(f)
12
+
13
+for arch in data['docker_arches']:
14
+ entries.append({
15
+ 'arch': arch,
16
+ 'platform': data['platform_map'][arch],
17
+ 'runner': data['arch_data'][arch]['runner'],
18
+ 'qemu': data['arch_data'][arch]['qemu'],
19
+ })
20
+
21
+entries.sort(key=lambda k: data['arch_order'].index(k['arch']))
22
+matrix = json.dumps({'include': entries}, sort_keys=True)
23
+print(matrix)
.github/scripts/gen-matrix-packaging.py
+3
-1
@@ -30,7 +30,9 @@ for i, v in enumerate(data['include']):
30
'builder_rev': data['include'][i]['packages']['builder_rev'],
31
'platform': data['platform_map'][arch],
32
'bundle_sentry': data['include'][i]['bundle_sentry'][arch],
33
- 'arch': arch
33
+ 'arch': arch,
34
+ 'runner': data['arch_data'][arch]['runner'],
35
+ 'qemu': data['arch_data'][arch]['qemu'],
36
})
37
38
entries.sort(key=lambda k: (data['arch_order'].index(k['arch']), k['distro'], k['version']))
.github/scripts/gen-matrix-static.py
new
+22
@@ -0,0 +1,22 @@
1
+#!/usr/bin/env python3
2
+
3
+import json
4
+
5
+from ruamel.yaml import YAML
6
+
7
+yaml = YAML(typ='safe')
8
+entries = list()
9
+
10
+with open('.github/data/distros.yml') as f:
11
+ data = yaml.load(f)
12
+
13
+for arch in data['static_arches']:
14
+ entries.append({
15
+ 'arch': arch,
16
+ 'runner': data['arch_data'][arch]['runner'],
17
+ 'qemu': data['arch_data'][arch]['qemu'],
18
+ })
19
+
20
+entries.sort(key=lambda k: data['arch_order'].index(k['arch']))
21
+matrix = json.dumps({'include': entries}, sort_keys=True)
22
+print(matrix)
.github/workflows/build.yml
+57
-18
@@ -65,6 +65,7 @@ jobs:
65
.github/workflows/build.yml
66
.github/scripts/build-static.sh
67
.github/scripts/get-static-cache-key.sh
68
+ .github/scripts/gen-matrix-static.py
69
.github/scripts/gen-matrix-build.py
70
.github/scripts/run-updater-check.sh
71
packaging/cmake/
@@ -181,20 +182,58 @@ jobs:
182
&& needs.file-check.outputs.run == 'true'
183
}}
184
185
+ static-matrix: # Generate the static build matrix.
186
+ name: Prepare Build Matrix
187
+ runs-on: ubuntu-latest
188
+ if: github.event_name != 'workflow_dispatch'
189
+ outputs:
190
+ matrix: ${{ steps.set-matrix.outputs.matrix }}
191
+ steps:
192
+ - name: Checkout
193
+ id: checkout
194
+ uses: actions/checkout@v4
195
+ - name: Prepare tools
196
+ id: prepare
197
+ run: |
198
+ sudo apt-get update || true
199
+ sudo apt-get install -y python3-ruamel.yaml
200
+ - name: Read build matrix
201
+ id: set-matrix
202
+ run: |
203
+ matrix="$(.github/scripts/gen-matrix-static.py)"
204
+ echo "Generated matrix: ${matrix}"
205
+ echo "matrix=${matrix}" >> "${GITHUB_OUTPUT}"
206
+ - name: Failure Notification
207
+ uses: rtCamp/action-slack-notify@v2
208
+ env:
209
+ SLACK_COLOR: 'danger'
210
+ SLACK_FOOTER: ''
211
+ SLACK_ICON_EMOJI: ':github-actions:'
212
+ SLACK_TITLE: 'Static build matrix preparation failed:'
213
+ SLACK_USERNAME: 'GitHub Actions'
214
+ SLACK_MESSAGE: |-
215
+ ${{ github.repository }}: Failed to prepare build matrix for build checks.
216
+ Checkout: ${{ steps.checkout.outcome }}
217
+ Prepare tools: ${{ steps.prepare.outcome }}
218
+ Read build matrix: ${{ steps.set-matrix.outcome }}
219
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
220
+ if: >-
221
+ ${{
222
+ failure()
223
+ && startsWith(github.ref, 'refs/heads/master')
224
+ && github.event_name != 'pull_request'
225
+ && github.repository == 'netdata/netdata'
226
+ }}
227
+
228
build-static: # Build the static binary archives, and store them as artifacts.
229
name: Build Static
186
- runs-on: ubuntu-latest
230
needs:
231
- file-check
232
+ - static-matrix
233
strategy:
190
- matrix:
191
- arch:
192
- - x86_64
193
- - armv6l
194
- - armv7l
195
- - aarch64
196
- - ppc64le
234
fail-fast: false
235
+ matrix: ${{ fromJson(needs.static-matrix.outputs.matrix) }}
236
+ runs-on: ${{ matrix.runner }}
237
steps:
238
- name: Skip Check
239
id: skip
@@ -230,7 +269,7 @@ jobs:
269
key: ${{ steps.cache-key.outputs.key }}
270
- name: Set up QEMU
271
id: qemu
233
- if: needs.file-check.outputs.run == 'true'
272
+ if: matrix.qemu && needs.file-check.outputs.run == 'true'
273
run: |
274
sudo apt-get update
275
sudo apt-get upgrade -y
@@ -239,7 +278,7 @@ jobs:
278
if: github.event_name != 'workflow_dispatch' && needs.file-check.outputs.run == 'true' # Don’t use retries on PRs.
279
run: |
280
export EXTRA_INSTALL_FLAGS=${{ needs.file-check.outputs.skip-go }}
242
- export SKIP_EMULATION=1
281
+ [ "${{ matrix.qemu }}" == "true" ] || export SKIP_EMULATION=1
282
.github/scripts/build-static.sh ${{ matrix.arch }}
283
- name: Build
284
if: github.event_name == 'workflow_dispatch' && needs.file-check.outputs.run == 'true'
@@ -250,7 +289,7 @@ jobs:
289
max_attempts: 3
290
command: |
291
export EXTRA_INSTALL_FLAGS=${{ needs.file-check.outputs.skip-go }}
253
- export SKIP_EMULATION=1
292
+ [ "${{ matrix.qemu }}" == "true" ] || export SKIP_EMULATION=1
293
.github/scripts/build-static.sh ${{ matrix.arch }}
294
- name: Store
295
id: store
@@ -374,7 +413,7 @@ jobs:
413
SLACK_TITLE: 'Windows build failed:'
414
SLACK_USERNAME: 'GitHub Actions'
415
SLACK_MESSAGE: |-
377
- ${{ github.repository }}: Updater checks for ${{ matrix.distro }} failed.
416
+ ${{ github.repository }}: Windows build failed.
417
Checkout: ${{ steps.checkout.outcome }}
418
Set Up Dependencies: ${{ steps.deps.outcome }}
419
Build Netdata: ${{ steps.build.outcome }}
@@ -672,10 +711,10 @@ jobs:
711
SLACK_COLOR: 'danger'
712
SLACK_FOOTER: ''
713
SLACK_ICON_EMOJI: ':github-actions:'
675
- SLACK_TITLE: 'Updater checks for ${{ matrix.distro }} failed:'
714
+ SLACK_TITLE: 'Updater checks failed:'
715
SLACK_USERNAME: 'GitHub Actions'
716
SLACK_MESSAGE: |-
678
- ${{ github.repository }}: Updater checks for ${{ matrix.distro }} failed.
717
+ ${{ github.repository }}: Updater checks for failed.
718
Checkout: ${{ steps.checkout.outcome }}
719
Fetch artifacts: ${{ steps.fetch-artifacts.outcome }}
720
Prepare artifact directory: ${{ steps.prepare.outcome }}
@@ -893,7 +932,7 @@ jobs:
932
933
# Remaining jobs are only used for CI checks, and not as part of the release process
934
896
- matrix: # Generate the shared build matrix for our Linux build tests.
935
+ src-matrix: # Generate the shared build matrix for our Linux build tests.
936
name: Prepare Build Matrix
937
runs-on: ubuntu-latest
938
if: github.event_name != 'workflow_dispatch'
@@ -941,12 +980,12 @@ jobs:
980
runs-on: ubuntu-latest
981
if: github.event_name != 'workflow_dispatch'
982
needs:
944
- - matrix
983
+ - src-matrix
984
- file-check
985
strategy:
986
fail-fast: false
987
max-parallel: 8
949
- matrix: ${{ fromJson(needs.matrix.outputs.matrix) }}
988
+ matrix: ${{ fromJson(needs.src-matrix.outputs.matrix) }}
989
steps:
990
- name: Skip Check
991
id: skip
@@ -995,7 +1034,7 @@ jobs:
1034
${{ github.repository }}: Build tests for ${{ matrix.distro }} failed.
1035
Checkout: ${{ steps.checkout.outcome }}
1036
Set up Buildx: ${{ steps.buildx.outcome }}
998
- Build test environment: ${{ steps.build1.outcome }}
1037
+ Build test environment: ${{ steps.build.outcome }}
1038
netdata-installer: ${{ steps.build-cloud.outcome }}
1039
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
1040
if: >-
.github/workflows/docker.yml
+60
-36
@@ -72,6 +72,7 @@ jobs:
72
netdata-installer.sh
73
.github/workflows/docker.yml
74
.github/scripts/docker-test.sh
75
+ .github/scripts/gen-matrix-docker.py
76
.github/scripts/gen-docker-tags.py
77
.github/scripts/gen-docker-imagetool-args.py
78
packaging/cmake/
@@ -116,19 +117,57 @@ jobs:
117
echo 'skip-go=' >> "${GITHUB_OUTPUT}"
118
fi
119
120
+ matrix:
121
+ name: Generate Docker Build Matrix
122
+ runs-on: ubuntu-latest
123
+ outputs:
124
+ matrix: ${{ steps.set-matrix.outputs.matrix }}
125
+ steps:
126
+ - name: Checkout
127
+ id: checkout
128
+ uses: actions/checkout@v4
129
+ - name: Prepare tools
130
+ id: prepare
131
+ run: |
132
+ sudo apt-get update || true
133
+ sudo apt-get install -y python3-ruamel.yaml
134
+ - name: Read build matrix
135
+ id: set-matrix
136
+ run: |
137
+ matrix="$(.github/scripts/gen-matrix-docker.py)"
138
+ echo "Generated matrix: ${matrix}"
139
+ echo "matrix=${matrix}" >> "${GITHUB_OUTPUT}"
140
+ - name: Failure Notification
141
+ uses: rtCamp/action-slack-notify@v2
142
+ env:
143
+ SLACK_COLOR: 'danger'
144
+ SLACK_FOOTER: ''
145
+ SLACK_ICON_EMOJI: ':github-actions:'
146
+ SLACK_TITLE: 'Docker build matrix preparation failed:'
147
+ SLACK_USERNAME: 'GitHub Actions'
148
+ SLACK_MESSAGE: |-
149
+ ${{ github.repository }}: Failed to prepare build matrix for build checks.
150
+ Checkout: ${{ steps.checkout.outcome }}
151
+ Prepare tools: ${{ steps.prepare.outcome }}
152
+ Read build matrix: ${{ steps.set-matrix.outcome }}
153
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
154
+ if: >-
155
+ ${{
156
+ failure()
157
+ && startsWith(github.ref, 'refs/heads/master')
158
+ && github.event_name != 'pull_request'
159
+ && github.repository == 'netdata/netdata'
160
+ }}
161
+
162
build-images:
163
name: Build Docker Images
164
needs:
165
- file-check
123
- runs-on: ubuntu-latest
166
+ - matrix
167
+ runs-on: ${{ matrix.runner }}
168
strategy:
125
- matrix:
126
- platform:
127
- - linux/amd64
128
- - linux/i386
129
- - linux/arm/v7
130
- - linux/arm64
131
- - linux/ppc64le
169
+ matrix: ${{ fromJson(needs.matrix.outputs.matrix) }}
170
+ # Fail fast on releases, but run everything to completion on other triggers.
171
fail-fast: false
172
steps:
173
- name: Skip Check
@@ -152,7 +191,7 @@ jobs:
191
run: echo "OFFICIAL_IMAGE=true" >> "${GITHUB_ENV}"
192
- name: Setup QEMU
193
id: qemu
155
- if: matrix.platform != 'linux/i386' && matrix.platform != 'linux/amd64' && needs.file-check.outputs.run == 'true'
194
+ if: matrix.qemu && needs.file-check.outputs.run == 'true'
195
run: |
196
sudo apt-get update
197
sudo apt-get upgrade -y
@@ -237,15 +276,10 @@ jobs:
276
needs:
277
- build-images
278
- gen-tags
279
+ - matrix
280
strategy:
241
- matrix:
242
- platform:
243
- - linux/amd64
244
- - linux/i386
245
- - linux/arm/v7
246
- - linux/arm64
247
- - linux/ppc64le
248
- runs-on: ubuntu-latest
281
+ matrix: ${{ fromJson(needs.matrix.outputs.matrix) }}
282
+ runs-on: ${{ matrix.runner }}
283
steps:
284
- name: Checkout
285
id: checkout
@@ -268,7 +302,7 @@ jobs:
302
run: echo "OFFICIAL_IMAGE=true" >> "${GITHUB_ENV}"
303
- name: Setup QEMU
304
id: qemu
271
- if: matrix.platform != 'linux/i386' && matrix.platform != 'linux/amd64'
305
+ if: matrix.qemu
306
uses: docker/setup-qemu-action@v3
307
- name: Setup Buildx
308
id: prepare
@@ -391,15 +425,10 @@ jobs:
425
needs:
426
- build-images
427
- gen-tags
428
+ - matrix
429
strategy:
395
- matrix:
396
- platform:
397
- - linux/amd64
398
- - linux/i386
399
- - linux/arm/v7
400
- - linux/arm64
401
- - linux/ppc64le
402
- runs-on: ubuntu-latest
430
+ matrix: ${{ fromJson(needs.matrix.outputs.matrix) }}
431
+ runs-on: ${{ matrix.runner }}
432
steps:
433
- name: Checkout
434
id: checkout
@@ -422,7 +451,7 @@ jobs:
451
run: echo "OFFICIAL_IMAGE=true" >> "${GITHUB_ENV}"
452
- name: Setup QEMU
453
id: qemu
425
- if: matrix.platform != 'linux/i386' && matrix.platform != 'linux/amd64'
454
+ if: matrix.qemu
455
uses: docker/setup-qemu-action@v3
456
- name: Setup Buildx
457
id: prepare
@@ -547,15 +576,10 @@ jobs:
576
needs:
577
- build-images
578
- gen-tags
579
+ - matrix
580
strategy:
551
- matrix:
552
- platform:
553
- - linux/amd64
554
- - linux/i386
555
- - linux/arm/v7
556
- - linux/arm64
557
- - linux/ppc64le
558
- runs-on: ubuntu-latest
581
+ matrix: ${{ fromJson(needs.matrix.outputs.matrix) }}
582
+ runs-on: ${{ matrix.runner }}
583
steps:
584
- name: Checkout
585
id: checkout
@@ -578,7 +602,7 @@ jobs:
602
run: echo "OFFICIAL_IMAGE=true" >> "${GITHUB_ENV}"
603
- name: Setup QEMU
604
id: qemu
581
- if: matrix.platform != 'linux/i386' && matrix.platform != 'linux/amd64'
605
+ if: matrix.qemu
606
uses: docker/setup-qemu-action@v3
607
- name: Setup Buildx
608
id: prepare
.github/workflows/packaging.yml
+12
-14
@@ -190,7 +190,7 @@ jobs:
190
191
build:
192
name: Build
193
- runs-on: ubuntu-latest
193
+ runs-on: ${{ matrix.runner }}
194
env:
195
DOCKER_CLI_EXPERIMENTAL: enabled
196
needs:
@@ -230,7 +230,7 @@ jobs:
230
fi
231
- name: Setup QEMU
232
id: qemu
233
- if: matrix.platform != 'linux/i386' && matrix.platform != 'linux/amd64' && needs.file-check.outputs.run == 'true'
233
+ if: matrix.qemu && needs.file-check.outputs.run == 'true'
234
run: |
235
sudo apt-get update
236
sudo apt-get upgrade -y
@@ -274,14 +274,6 @@ jobs:
274
-e VERSION=${{ needs.version-check.outputs.version }} -e DISTRO_VERSION=${{ matrix.version }} \
275
--platform=${{ matrix.platform }} -v "$PWD":/netdata ${{ matrix.base_image }} \
276
/netdata/.github/scripts/pkg-test.sh
277
- - name: SSH setup
278
- id: ssh-setup
279
- if: github.event_name == 'workflow_dispatch' && github.repository == 'netdata/netdata' && needs.file-check.outputs.run == 'true'
280
- uses: shimataro/ssh-key-action@v2
281
- with:
282
- key: ${{ secrets.NETDATABOT_PACKAGES_SSH_KEY }}
283
- name: id_ecdsa
284
- known_hosts: ${{ secrets.PACKAGES_KNOWN_HOSTS }}
277
- name: Import GPG Keys
278
id: import-keys
279
if: needs.file-check.outputs.run == 'true' && matrix.format == 'deb' && github.event_name != 'pull_request'
@@ -293,6 +285,14 @@ jobs:
285
if: needs.file-check.outputs.run == 'true' && matrix.format == 'deb' && github.event_name != 'pull_request'
286
shell: bash
287
run: .github/scripts/deb-sign.sh artifacts ${{ steps.import-keys.outputs.fingerprint }}
288
+ - name: SSH setup
289
+ id: ssh-setup
290
+ if: github.event_name == 'workflow_dispatch' && github.repository == 'netdata/netdata' && needs.file-check.outputs.run == 'true'
291
+ uses: shimataro/ssh-key-action@v2
292
+ with:
293
+ key: ${{ secrets.NETDATABOT_PACKAGES_SSH_KEY }}
294
+ name: id_ecdsa
295
+ known_hosts: ${{ secrets.PACKAGES_KNOWN_HOSTS }}
296
- name: Upload to packages.netdata.cloud
297
id: package-upload
298
continue-on-error: true
@@ -325,15 +325,13 @@ jobs:
325
${{ github.repository }}: ${{ matrix.repo_distro }} ${{ matrix.version }} package build for ${{ matrix.arch }} failed.
326
Checkout: ${{ steps.checkout.outcome }}
327
Setup QEMU: ${{ steps.qemu.outcome }}
328
- Setup Docker: ${{ steps.docker-config.outcome }}
328
Fetch images: ${{ steps.fetch-images.outcome }}
329
Build: ${{ steps.build.outcome }}
330
Test: ${{ steps.test.outcome }}
332
- Publish to PackageCloud: ${{ steps.upload.outcome }}
333
- Import SSH Key: ${{ steps.ssh-setup.outcome }}
334
- Publish to packages.netdata.cloud: ${{ steps.package-upload.outcome }}
331
Import GPG Keys: ${{ steps.import-keys.outcome }}
332
Sign DEB Packages: ${{ steps.sign-deb.outcome }}
333
+ Import SSH Key: ${{ steps.ssh-setup.outcome }}
334
+ Publish to packages.netdata.cloud: ${{ steps.package-upload.outcome }}
335
Publish to packages2.netdata.cloud: ${{ steps.package2-upload.outcome }}
336
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
337
if: >-
packaging/makeself/bundled-packages.version
+4
-4
@@ -1,13 +1,13 @@
1
# Source of truth for all the packages we bundle in static builds
2
PACKAGES=("OPENSSL" "CURL" "BASH" "IOPING" "LIBNETFILTER_ACT")
3
SOURCE_TYPES=("GH_REPO_CLONE" "GH_REPO_CLONE" "DW_TARBALL" "GH_REPO_SOURCE" "DW_TARBALL")
4
-OPENSSL_VERSION="openssl-3.3.2"
4
+OPENSSL_VERSION="openssl-3.4.0"
5
OPENSSL_SOURCE="https://github.com/openssl/openssl"
6
-CURL_VERSION="curl-8_10_1"
6
+CURL_VERSION="curl-8_11_1"
7
CURL_SOURCE="https://github.com/curl/curl"
8
-BASH_VERSION="5.1.16"
8
+BASH_VERSION="5.2.37"
9
BASH_ARTIFACT_SOURCE="http://ftp.gnu.org/gnu/bash"
10
-BASH_ARTIFACT_SHA256="5bac17218d3911834520dad13cd1f85ab944e1c09ae1aba55906be1f8192f558"
10
+BASH_ARTIFACT_SHA256="9599b22ecd1d5787ad7d3b7bf0c59f312b3396d1e281175dd1f8a4014da621ff"
11
IOPING_VERSION="1.3"
12
IOPING_SOURCE="https://github.com/koct9i/ioping"
13
IOPING_ARTIFACT_SHA256="7aa48e70aaa766bc112dea57ebbe56700626871052380709df3a26f46766e8c8"
packaging/makeself/jobs/20-openssl.install.sh
+11
-3
@@ -36,9 +36,17 @@ fi
36
cd "${NETDATA_MAKESELF_PATH}/tmp/openssl" || exit 1
37
38
if [ "${CACHE_HIT:-0}" -eq 0 ]; then
39
- sed -i "s/disable('static', 'pic', 'threads');/disable('static', 'pic');/" Configure
40
- run ./config -static threads no-tests --prefix=/openssl-static --openssldir=/opt/netdata/etc/ssl
41
- run make -j "$(nproc)"
39
+ COMMON_CONFIG="-static threads no-tests --prefix=/openssl-static --openssldir=/opt/netdata/etc/ssl"
40
+
41
+ sed -i "s/disable('static', 'pic', 'threads');/disable('static', 'pic');/" Configure
42
+
43
+ # shellcheck disable=SC2086
44
+ case "${BUILDARCH}" in
45
+ armv6l|armv7l) run ./config ${COMMON_CONFIG} linux-armv4 ;;
46
+ *) run ./config ${COMMON_CONFIG} ;;
47
+ esac
48
+
49
+ run make -j "$(nproc)"
50
fi
51
52
run make -j "$(nproc)" install_sw