feat: Always disable cgo support (static builds) (#12600)
This commit is contained in:
parent
bf108da447
commit
d137d97ed0
|
|
@ -368,16 +368,6 @@ jobs:
|
|||
- package-build:
|
||||
type: mips
|
||||
nightly: << parameters.nightly >>
|
||||
static-package:
|
||||
parameters:
|
||||
nightly:
|
||||
type: boolean
|
||||
default: false
|
||||
executor: telegraf-ci
|
||||
steps:
|
||||
- package-build:
|
||||
type: static
|
||||
nightly: << parameters.nightly >>
|
||||
armhf-package:
|
||||
parameters:
|
||||
nightly:
|
||||
|
|
@ -633,15 +623,6 @@ workflows:
|
|||
- master
|
||||
tags:
|
||||
only: /.*/
|
||||
- 'static-package':
|
||||
requires:
|
||||
- 'test-go-linux'
|
||||
filters:
|
||||
branches:
|
||||
ignore:
|
||||
- master
|
||||
tags:
|
||||
only: /.*/
|
||||
- 'mipsel-package':
|
||||
requires:
|
||||
- 'test-go-linux'
|
||||
|
|
@ -687,7 +668,6 @@ workflows:
|
|||
- 'darwin-amd64-package'
|
||||
- 'darwin-arm64-package'
|
||||
- 'windows-package'
|
||||
- 'static-package'
|
||||
- 'arm64-package'
|
||||
- 'armhf-package'
|
||||
filters:
|
||||
|
|
@ -723,7 +703,6 @@ workflows:
|
|||
- 'amd64-package'
|
||||
- 'mipsel-package'
|
||||
- 'mips-package'
|
||||
- 'static-package'
|
||||
- 'arm64-package'
|
||||
- 'armhf-package'
|
||||
- 'riscv64-package'
|
||||
|
|
@ -799,11 +778,6 @@ workflows:
|
|||
nightly: true
|
||||
requires:
|
||||
- 'test-go-linux'
|
||||
- 'static-package':
|
||||
name: 'static-package-nightly'
|
||||
nightly: true
|
||||
requires:
|
||||
- 'test-go-linux'
|
||||
- 'mipsel-package':
|
||||
name: 'mipsel-package-nightly'
|
||||
nightly: true
|
||||
|
|
@ -835,7 +809,6 @@ workflows:
|
|||
- 'ppc64le-package-nightly'
|
||||
- 'riscv64-package-nightly'
|
||||
- 's390x-package-nightly'
|
||||
- 'static-package-nightly'
|
||||
- 'windows-package-nightly'
|
||||
- docker-nightly:
|
||||
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)
|
||||
commit := $(shell git rev-parse --short=8 HEAD)
|
||||
glibc_version := 2.17
|
||||
|
||||
ifdef NIGHTLY
|
||||
version := $(next_version)
|
||||
|
|
@ -123,7 +122,7 @@ docs: build_tools embed_readme_inputs embed_readme_outputs embed_readme_processo
|
|||
|
||||
.PHONY: build
|
||||
build:
|
||||
go build -tags "$(BUILDTAGS)" -ldflags "$(LDFLAGS)" ./cmd/telegraf
|
||||
CGO_ENABLED=0 go build -ldflags "$(LDFLAGS)" ./cmd/telegraf
|
||||
|
||||
.PHONY: telegraf
|
||||
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/logrotate.d/telegraf $(DESTDIR)$(sysconfdir)/logrotate.d; 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 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
|
||||
|
|
@ -268,7 +266,7 @@ install: $(buildbin)
|
|||
$(buildbin):
|
||||
echo $(GOOS)
|
||||
@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
|
||||
# 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
|
||||
amd64:
|
||||
@ echo $(amd64)
|
||||
static += static_linux_amd64.tar.gz
|
||||
.PHONY: static
|
||||
static:
|
||||
@ echo $(static)
|
||||
armel += linux_armel.tar.gz armel.rpm armel.deb
|
||||
.PHONY: armel
|
||||
armel:
|
||||
|
|
@ -330,7 +324,7 @@ darwin-arm64 += darwin_arm64.tar.gz
|
|||
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
|
||||
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 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 GOARCH := 386
|
||||
|
||||
|
|
@ -479,6 +470,6 @@ windows_i386.zip windows_amd64.zip windows_arm64.zip: export EXEEXT := .exe
|
|||
%.zip: export pkg := zip
|
||||
%.zip: export prefix := /
|
||||
|
||||
%.deb %.rpm %.tar.gz %.zip: export DESTDIR = build/$(GOOS)-$(GOARCH)$(GOARM)$(cgo)-$(pkg)/telegraf-$(version)
|
||||
%.deb %.rpm %.tar.gz %.zip: export buildbin = build/$(GOOS)-$(GOARCH)$(GOARM)$(cgo)/telegraf$(EXEEXT)
|
||||
%.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)/telegraf$(EXEEXT)
|
||||
%.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_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) | |
|
||||
| | | [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):
|
||||
|
||||
|
|
|
|||
|
|
@ -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