feat: Always disable cgo support (static builds) (#12600)
This commit is contained in:
parent
bf108da447
commit
d137d97ed0
|
|
@ -368,16 +368,6 @@ jobs:
|
||||||
- package-build:
|
- package-build:
|
||||||
type: mips
|
type: mips
|
||||||
nightly: << parameters.nightly >>
|
nightly: << parameters.nightly >>
|
||||||
static-package:
|
|
||||||
parameters:
|
|
||||||
nightly:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
executor: telegraf-ci
|
|
||||||
steps:
|
|
||||||
- package-build:
|
|
||||||
type: static
|
|
||||||
nightly: << parameters.nightly >>
|
|
||||||
armhf-package:
|
armhf-package:
|
||||||
parameters:
|
parameters:
|
||||||
nightly:
|
nightly:
|
||||||
|
|
@ -633,15 +623,6 @@ workflows:
|
||||||
- master
|
- master
|
||||||
tags:
|
tags:
|
||||||
only: /.*/
|
only: /.*/
|
||||||
- 'static-package':
|
|
||||||
requires:
|
|
||||||
- 'test-go-linux'
|
|
||||||
filters:
|
|
||||||
branches:
|
|
||||||
ignore:
|
|
||||||
- master
|
|
||||||
tags:
|
|
||||||
only: /.*/
|
|
||||||
- 'mipsel-package':
|
- 'mipsel-package':
|
||||||
requires:
|
requires:
|
||||||
- 'test-go-linux'
|
- 'test-go-linux'
|
||||||
|
|
@ -687,7 +668,6 @@ workflows:
|
||||||
- 'darwin-amd64-package'
|
- 'darwin-amd64-package'
|
||||||
- 'darwin-arm64-package'
|
- 'darwin-arm64-package'
|
||||||
- 'windows-package'
|
- 'windows-package'
|
||||||
- 'static-package'
|
|
||||||
- 'arm64-package'
|
- 'arm64-package'
|
||||||
- 'armhf-package'
|
- 'armhf-package'
|
||||||
filters:
|
filters:
|
||||||
|
|
@ -723,7 +703,6 @@ workflows:
|
||||||
- 'amd64-package'
|
- 'amd64-package'
|
||||||
- 'mipsel-package'
|
- 'mipsel-package'
|
||||||
- 'mips-package'
|
- 'mips-package'
|
||||||
- 'static-package'
|
|
||||||
- 'arm64-package'
|
- 'arm64-package'
|
||||||
- 'armhf-package'
|
- 'armhf-package'
|
||||||
- 'riscv64-package'
|
- 'riscv64-package'
|
||||||
|
|
@ -799,11 +778,6 @@ workflows:
|
||||||
nightly: true
|
nightly: true
|
||||||
requires:
|
requires:
|
||||||
- 'test-go-linux'
|
- 'test-go-linux'
|
||||||
- 'static-package':
|
|
||||||
name: 'static-package-nightly'
|
|
||||||
nightly: true
|
|
||||||
requires:
|
|
||||||
- 'test-go-linux'
|
|
||||||
- 'mipsel-package':
|
- 'mipsel-package':
|
||||||
name: 'mipsel-package-nightly'
|
name: 'mipsel-package-nightly'
|
||||||
nightly: true
|
nightly: true
|
||||||
|
|
@ -835,7 +809,6 @@ workflows:
|
||||||
- 'ppc64le-package-nightly'
|
- 'ppc64le-package-nightly'
|
||||||
- 'riscv64-package-nightly'
|
- 'riscv64-package-nightly'
|
||||||
- 's390x-package-nightly'
|
- 's390x-package-nightly'
|
||||||
- 'static-package-nightly'
|
|
||||||
- 'windows-package-nightly'
|
- 'windows-package-nightly'
|
||||||
- docker-nightly:
|
- docker-nightly:
|
||||||
requires:
|
requires:
|
||||||
|
|
|
||||||
19
Makefile
19
Makefile
|
|
@ -7,7 +7,6 @@ tag := $(shell git describe --exact-match --tags 2>/dev/null)
|
||||||
|
|
||||||
branch := $(shell git rev-parse --abbrev-ref HEAD)
|
branch := $(shell git rev-parse --abbrev-ref HEAD)
|
||||||
commit := $(shell git rev-parse --short=8 HEAD)
|
commit := $(shell git rev-parse --short=8 HEAD)
|
||||||
glibc_version := 2.17
|
|
||||||
|
|
||||||
ifdef NIGHTLY
|
ifdef NIGHTLY
|
||||||
version := $(next_version)
|
version := $(next_version)
|
||||||
|
|
@ -123,7 +122,7 @@ docs: build_tools embed_readme_inputs embed_readme_outputs embed_readme_processo
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
build:
|
build:
|
||||||
go build -tags "$(BUILDTAGS)" -ldflags "$(LDFLAGS)" ./cmd/telegraf
|
CGO_ENABLED=0 go build -ldflags "$(LDFLAGS)" ./cmd/telegraf
|
||||||
|
|
||||||
.PHONY: telegraf
|
.PHONY: telegraf
|
||||||
telegraf: build
|
telegraf: build
|
||||||
|
|
@ -257,7 +256,6 @@ install: $(buildbin)
|
||||||
@if [ $(GOOS) != "windows" ]; then cp -fv etc/telegraf.conf $(DESTDIR)$(sysconfdir)/telegraf/telegraf.conf$(conf_suffix); fi
|
@if [ $(GOOS) != "windows" ]; then cp -fv etc/telegraf.conf $(DESTDIR)$(sysconfdir)/telegraf/telegraf.conf$(conf_suffix); fi
|
||||||
@if [ $(GOOS) != "windows" ]; then cp -fv etc/logrotate.d/telegraf $(DESTDIR)$(sysconfdir)/logrotate.d; fi
|
@if [ $(GOOS) != "windows" ]; then cp -fv etc/logrotate.d/telegraf $(DESTDIR)$(sysconfdir)/logrotate.d; fi
|
||||||
@if [ $(GOOS) = "windows" ]; then cp -fv etc/telegraf_windows.conf $(DESTDIR)/telegraf.conf; fi
|
@if [ $(GOOS) = "windows" ]; then cp -fv etc/telegraf_windows.conf $(DESTDIR)/telegraf.conf; fi
|
||||||
@if [ $(GOOS) = "linux" ]; then scripts/check-dynamic-glibc-versions.sh $(buildbin) $(glibc_version); fi
|
|
||||||
@if [ $(GOOS) = "linux" ]; then mkdir -pv $(DESTDIR)$(prefix)/lib/telegraf/scripts; fi
|
@if [ $(GOOS) = "linux" ]; then mkdir -pv $(DESTDIR)$(prefix)/lib/telegraf/scripts; fi
|
||||||
@if [ $(GOOS) = "linux" ]; then cp -fv scripts/telegraf.service $(DESTDIR)$(prefix)/lib/telegraf/scripts; fi
|
@if [ $(GOOS) = "linux" ]; then cp -fv scripts/telegraf.service $(DESTDIR)$(prefix)/lib/telegraf/scripts; fi
|
||||||
@if [ $(GOOS) = "linux" ]; then cp -fv scripts/init.sh $(DESTDIR)$(prefix)/lib/telegraf/scripts; fi
|
@if [ $(GOOS) = "linux" ]; then cp -fv scripts/init.sh $(DESTDIR)$(prefix)/lib/telegraf/scripts; fi
|
||||||
|
|
@ -268,7 +266,7 @@ install: $(buildbin)
|
||||||
$(buildbin):
|
$(buildbin):
|
||||||
echo $(GOOS)
|
echo $(GOOS)
|
||||||
@mkdir -pv $(dir $@)
|
@mkdir -pv $(dir $@)
|
||||||
go build -o $(dir $@) -ldflags "$(LDFLAGS)" ./cmd/telegraf
|
CGO_ENABLED=0 go build -o $(dir $@) -ldflags "$(LDFLAGS)" ./cmd/telegraf
|
||||||
|
|
||||||
# Define packages Telegraf supports, organized by architecture with a rule to echo the list to limit include_packages
|
# Define packages Telegraf supports, organized by architecture with a rule to echo the list to limit include_packages
|
||||||
# e.g. make package include_packages="$(make amd64)"
|
# e.g. make package include_packages="$(make amd64)"
|
||||||
|
|
@ -288,10 +286,6 @@ amd64 += freebsd_amd64.tar.gz linux_amd64.tar.gz amd64.deb x86_64.rpm
|
||||||
.PHONY: amd64
|
.PHONY: amd64
|
||||||
amd64:
|
amd64:
|
||||||
@ echo $(amd64)
|
@ echo $(amd64)
|
||||||
static += static_linux_amd64.tar.gz
|
|
||||||
.PHONY: static
|
|
||||||
static:
|
|
||||||
@ echo $(static)
|
|
||||||
armel += linux_armel.tar.gz armel.rpm armel.deb
|
armel += linux_armel.tar.gz armel.rpm armel.deb
|
||||||
.PHONY: armel
|
.PHONY: armel
|
||||||
armel:
|
armel:
|
||||||
|
|
@ -330,7 +324,7 @@ darwin-arm64 += darwin_arm64.tar.gz
|
||||||
darwin-arm64:
|
darwin-arm64:
|
||||||
@ echo $(darwin-arm64)
|
@ echo $(darwin-arm64)
|
||||||
|
|
||||||
include_packages := $(mips) $(mipsel) $(arm64) $(amd64) $(static) $(armel) $(armhf) $(riscv64) $(s390x) $(ppc64le) $(i386) $(windows) $(darwin-amd64) $(darwin-arm64)
|
include_packages := $(mips) $(mipsel) $(arm64) $(amd64) $(armel) $(armhf) $(riscv64) $(s390x) $(ppc64le) $(i386) $(windows) $(darwin-amd64) $(darwin-arm64)
|
||||||
|
|
||||||
.PHONY: package
|
.PHONY: package
|
||||||
package: docs $(include_packages)
|
package: docs $(include_packages)
|
||||||
|
|
@ -399,9 +393,6 @@ $(include_packages):
|
||||||
amd64.deb x86_64.rpm linux_amd64.tar.gz: export GOOS := linux
|
amd64.deb x86_64.rpm linux_amd64.tar.gz: export GOOS := linux
|
||||||
amd64.deb x86_64.rpm linux_amd64.tar.gz: export GOARCH := amd64
|
amd64.deb x86_64.rpm linux_amd64.tar.gz: export GOARCH := amd64
|
||||||
|
|
||||||
static_linux_amd64.tar.gz: export cgo := -nocgo
|
|
||||||
static_linux_amd64.tar.gz: export CGO_ENABLED := 0
|
|
||||||
|
|
||||||
i386.deb i386.rpm linux_i386.tar.gz: export GOOS := linux
|
i386.deb i386.rpm linux_i386.tar.gz: export GOOS := linux
|
||||||
i386.deb i386.rpm linux_i386.tar.gz: export GOARCH := 386
|
i386.deb i386.rpm linux_i386.tar.gz: export GOARCH := 386
|
||||||
|
|
||||||
|
|
@ -479,6 +470,6 @@ windows_i386.zip windows_amd64.zip windows_arm64.zip: export EXEEXT := .exe
|
||||||
%.zip: export pkg := zip
|
%.zip: export pkg := zip
|
||||||
%.zip: export prefix := /
|
%.zip: export prefix := /
|
||||||
|
|
||||||
%.deb %.rpm %.tar.gz %.zip: export DESTDIR = build/$(GOOS)-$(GOARCH)$(GOARM)$(cgo)-$(pkg)/telegraf-$(version)
|
%.deb %.rpm %.tar.gz %.zip: export DESTDIR = build/$(GOOS)-$(GOARCH)$(GOARM)-$(pkg)/telegraf-$(version)
|
||||||
%.deb %.rpm %.tar.gz %.zip: export buildbin = build/$(GOOS)-$(GOARCH)$(GOARM)$(cgo)/telegraf$(EXEEXT)
|
%.deb %.rpm %.tar.gz %.zip: export buildbin = build/$(GOOS)-$(GOARCH)$(GOARM)/telegraf$(EXEEXT)
|
||||||
%.deb %.rpm %.tar.gz %.zip: export LDFLAGS = -w -s
|
%.deb %.rpm %.tar.gz %.zip: export LDFLAGS = -w -s
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ These builds are generated from the master branch at midnight UTC:
|
||||||
| | | [linux_ppc64le.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_ppc64le.tar.gz) | |
|
| | | [linux_ppc64le.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_ppc64le.tar.gz) | |
|
||||||
| | | [linux_riscv64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_riscv64.tar.gz) | |
|
| | | [linux_riscv64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_riscv64.tar.gz) | |
|
||||||
| | | [linux_s390x.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_s390x.tar.gz) | |
|
| | | [linux_s390x.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_s390x.tar.gz) | |
|
||||||
| | | [static_linux_amd64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_static_linux_amd64.tar.gz) | |
|
|
||||||
|
|
||||||
Nightly docker images are available on [quay.io](https://quay.io/repository/influxdb/telegraf-nightly?tab=tags):
|
Nightly docker images are available on [quay.io](https://quay.io/repository/influxdb/telegraf-nightly?tab=tags):
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -euo pipefail
|
|
||||||
IFS=$'\n\t'
|
|
||||||
|
|
||||||
usage () {
|
|
||||||
echo "Check that no dynamic symbols provided by glibc are newer than a given version"
|
|
||||||
echo "Usage:"
|
|
||||||
echo " $0 program version"
|
|
||||||
echo "where program is the elf binary to check and version is a dotted version string like 2.3.4"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
#validate input and display help
|
|
||||||
[[ $# = 2 ]] || usage
|
|
||||||
prog=$1
|
|
||||||
max=$2
|
|
||||||
|
|
||||||
#make sure dependencies are installed
|
|
||||||
have_deps=true
|
|
||||||
for i in objdump grep sort uniq sed; do
|
|
||||||
if ! command -v "$i" > /dev/null; then
|
|
||||||
echo "$i not in path"
|
|
||||||
have_deps=false
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [[ $have_deps = false ]]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#compare dotted versions
|
|
||||||
#see https://stackoverflow.com/questions/4023830/how-to-compare-two-strings-in-dot-separated-version-format-in-bash
|
|
||||||
vercomp () {
|
|
||||||
if [[ $1 == "$2" ]]
|
|
||||||
then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
local IFS=.
|
|
||||||
local i ver1=("$1") ver2=("$2")
|
|
||||||
# fill empty fields in ver1 with zeros
|
|
||||||
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))
|
|
||||||
do
|
|
||||||
ver1[i]=0
|
|
||||||
done
|
|
||||||
for ((i=0; i<${#ver1[@]}; i++))
|
|
||||||
do
|
|
||||||
if [[ -z ${ver2[i]} ]]
|
|
||||||
then
|
|
||||||
# fill empty fields in ver2 with zeros
|
|
||||||
ver2[i]=0
|
|
||||||
fi
|
|
||||||
if ((10#${ver1[i]} > 10#${ver2[i]}))
|
|
||||||
then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
if ((10#${ver1[i]} < 10#${ver2[i]}))
|
|
||||||
then
|
|
||||||
return 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! objdump -p "$prog" | grep -q NEEDED; then
|
|
||||||
echo "$prog doesn't have dynamic library dependencies"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
objdump -T "$prog" | # get the dynamic symbol table
|
|
||||||
sed -n "s/.* GLIBC_\([0-9.]\+\).*/\1/p" | # find the entries for glibc and grab the version
|
|
||||||
sort | uniq | # remove duplicates
|
|
||||||
while read -r v; do
|
|
||||||
set +e
|
|
||||||
vercomp "$v" "$max" # fail if any version is newer than our max
|
|
||||||
comp=$?
|
|
||||||
set -e
|
|
||||||
if [[ $comp -eq 1 ]]; then
|
|
||||||
echo "$v is newer than $max"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
Loading…
Reference in New Issue