mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-25 23:51:07 +02:00
dev-lang/go: Sync with Gentoo
It's from Gentoo commit 73ab05b6cd80767eda05da70617afcb7f73537b6.
This commit is contained in:
parent
ae8d0b7fd2
commit
e1457cacd1
@ -2,3 +2,4 @@ DIST go1.22.11.src.tar.gz 27565913 BLAKE2B d4b8f746846f0ba45307ecf732e035c262848
|
||||
DIST go1.22.12.src.tar.gz 27566409 BLAKE2B ea8ce4abd7d6548aef14c0803a07b4beba8728f40f96db5feb6eb4b48fce5866fbccd0b2d1e670dafd2e58e6ec814ef6f83a16ed6b6214be76597748bf87ec9d SHA512 de498f72c398c5587abb6e6943a21b1b9835fde16dbda4d64a1ad847f5b2399ed289fe327255dcde104ad9e7f3fd6c520ddb13ee1900ba5d5c45aa5e1c1e30c8
|
||||
DIST go1.23.5.src.tar.gz 28179014 BLAKE2B 6fe6101054a0c10ce415aea65367a48ef8397c88d66bad01b7c72107a6c60daf0b9a47f7c1cd6c8da9855ab04309f25941cc867e6a9f90ac51d1ab0c54662313 SHA512 b04317afeab2d0ced7c36b8682dd32ac085d95d874cf3f614daa34859d7f7f2b75138132e7a64e237c6b4d711d5b03a4d20533f92a44840915630f4ea7cfafa2
|
||||
DIST go1.23.6.src.tar.gz 28179132 BLAKE2B 25c988547604c35de65aedfdee5af9f35f7a1c43f634c0147373d9c86baf2bb10068463f70013ef60acd3088149eb16502958b1ca63d7cee310e32eaddf1578a SHA512 c504476d42cdbcd1b6afe53c0974e82c19eb0efac974bc06d41c1641440676891cfe6416455a0cfc81fe82902a9b82ea0a1d95089c676667d05487e45f5e04e3
|
||||
DIST go1.24.0.src.tar.gz 30663922 BLAKE2B 1a74d268ad2bcfd4773eb9d24f0618491680a5347edba60606b3f50144e2d8879509b2640046e5fa535ff126958deb49c4224443210e3bd79523e65208b616e3 SHA512 36ba9a3a541208fd33aa49b969d892578e209570541d2b6ca6ff784250d8b6777597d347b823c6026acf0c2741b4abc9012693004e623a1434b06cfecdbebaa8
|
||||
|
137
sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.24.0.ebuild
vendored
Normal file
137
sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.24.0.ebuild
vendored
Normal file
@ -0,0 +1,137 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
export CBUILD=${CBUILD:-${CHOST}}
|
||||
export CTARGET=${CTARGET:-${CHOST}}
|
||||
|
||||
# See "Bootstrap" in release notes
|
||||
GO_BOOTSTRAP_MIN=1.22.12
|
||||
MY_PV=${PV/_/}
|
||||
|
||||
inherit go-env toolchain-funcs
|
||||
|
||||
case ${PV} in
|
||||
*9999*)
|
||||
EGIT_REPO_URI="https://github.com/golang/go.git"
|
||||
inherit git-r3
|
||||
;;
|
||||
*)
|
||||
SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
|
||||
S="${WORKDIR}"/go
|
||||
case ${PV} in
|
||||
*_beta*|*_rc*) ;;
|
||||
*)
|
||||
# KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
|
||||
DESCRIPTION="A concurrent garbage collected and typesafe programming language"
|
||||
HOMEPAGE="https://go.dev"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/${PV}"
|
||||
IUSE="cpu_flags_x86_sse2"
|
||||
|
||||
RDEPEND="
|
||||
arm? ( sys-devel/binutils[gold(-)] )
|
||||
arm64? ( sys-devel/binutils[gold(-)] )"
|
||||
BDEPEND="|| (
|
||||
>=dev-lang/go-${GO_BOOTSTRAP_MIN}
|
||||
>=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )"
|
||||
|
||||
# the *.syso files have writable/executable stacks
|
||||
QA_EXECSTACK='*.syso'
|
||||
|
||||
# Do not complain about CFLAGS, etc, since Go doesn't use them.
|
||||
QA_FLAGS_IGNORED='.*'
|
||||
|
||||
# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
|
||||
QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
|
||||
|
||||
# This package triggers "unrecognized elf file(s)" notices on riscv.
|
||||
# https://bugs.gentoo.org/794046
|
||||
QA_PREBUILT='.*'
|
||||
|
||||
# Do not strip this package. Stripping is unsupported upstream and may
|
||||
# fail.
|
||||
RESTRICT=" strip"
|
||||
|
||||
DOCS=(
|
||||
CONTRIBUTING.md
|
||||
PATENTS
|
||||
README.md
|
||||
SECURITY.md
|
||||
)
|
||||
|
||||
go_tuple() {
|
||||
echo "$(go-env_goos $@)_$(go-env_goarch $@)"
|
||||
}
|
||||
|
||||
go_cross_compile() {
|
||||
[[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
|
||||
}
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/go-never-download-newer-toolchains.patch
|
||||
)
|
||||
|
||||
src_compile() {
|
||||
if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then
|
||||
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
|
||||
elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then
|
||||
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
|
||||
else
|
||||
eerror "Go cannot be built without go or go-bootstrap installed"
|
||||
die "Should not be here, please report a bug"
|
||||
fi
|
||||
|
||||
# Go's build script does not use BUILD/HOST/TARGET consistently. :(
|
||||
export GOHOSTARCH=$(go-env_goarch ${CBUILD})
|
||||
export GOHOSTOS=$(go-env_goos ${CBUILD})
|
||||
export CC=$(tc-getBUILD_CC)
|
||||
|
||||
export GOARCH=$(go-env_goarch)
|
||||
export GOOS=$(go-env_goos)
|
||||
export CC_FOR_TARGET=$(tc-getCC)
|
||||
export CXX_FOR_TARGET=$(tc-getCXX)
|
||||
use arm && export GOARM=$(go-env_goarm)
|
||||
use x86 && export GO386=$(go-env_go386)
|
||||
|
||||
cd src
|
||||
bash -x ./make.bash || die "build failed"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
go_cross_compile && return 0
|
||||
cd src
|
||||
PATH="${GOBIN}:${PATH}" \
|
||||
./run.bash -no-rebuild -k || die "tests failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dodir /usr/lib/go
|
||||
# The use of cp is deliberate in order to retain permissions
|
||||
cp -R . "${ED}"/usr/lib/go
|
||||
einstalldocs
|
||||
|
||||
# testdata directories are not needed on the installed system
|
||||
# The other files we remove are installed by einstalldocs
|
||||
rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die
|
||||
rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die
|
||||
rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die
|
||||
|
||||
local bin_path
|
||||
if go_cross_compile; then
|
||||
bin_path="bin/$(go_tuple)"
|
||||
else
|
||||
bin_path=bin
|
||||
fi
|
||||
local f x
|
||||
for x in ${bin_path}/*; do
|
||||
f=${x##*/}
|
||||
dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
|
||||
done
|
||||
}
|
@ -7,7 +7,7 @@ export CBUILD=${CBUILD:-${CHOST}}
|
||||
export CTARGET=${CTARGET:-${CHOST}}
|
||||
|
||||
# See "Bootstrap" in release notes
|
||||
GO_BOOTSTRAP_MIN=1.20.14
|
||||
GO_BOOTSTRAP_MIN=1.22.12
|
||||
MY_PV=${PV/_/}
|
||||
|
||||
inherit go-env toolchain-funcs
|
||||
@ -88,10 +88,6 @@ src_compile() {
|
||||
die "Should not be here, please report a bug"
|
||||
fi
|
||||
|
||||
export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
|
||||
export GOROOT="${PWD}"
|
||||
export GOBIN="${GOROOT}/bin"
|
||||
|
||||
# Go's build script does not use BUILD/HOST/TARGET consistently. :(
|
||||
export GOHOSTARCH=$(go-env_goarch ${CBUILD})
|
||||
export GOHOSTOS=$(go-env_goos ${CBUILD})
|
||||
@ -110,30 +106,22 @@ src_compile() {
|
||||
|
||||
src_test() {
|
||||
go_cross_compile && return 0
|
||||
|
||||
cd src
|
||||
|
||||
# https://github.com/golang/go/issues/42005
|
||||
rm cmd/link/internal/ld/fallocate_test.go || die
|
||||
|
||||
PATH="${GOBIN}:${PATH}" \
|
||||
./run.bash -no-rebuild -k || die "tests failed"
|
||||
cd ..
|
||||
rm -fr pkg/*_race || die
|
||||
rm -fr pkg/obj/go-build || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dodir /usr/lib/go
|
||||
# The use of cp is deliberate in order to retain permissions
|
||||
cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
|
||||
cp -R . "${ED}"/usr/lib/go
|
||||
einstalldocs
|
||||
|
||||
insinto /usr/lib/go
|
||||
doins go.env VERSION*
|
||||
|
||||
# testdata directories are not needed on the installed system
|
||||
rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
|
||||
# The other files we remove are installed by einstalldocs
|
||||
rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die
|
||||
rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die
|
||||
rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die
|
||||
|
||||
local bin_path
|
||||
if go_cross_compile; then
|
||||
@ -146,21 +134,4 @@ src_install() {
|
||||
f=${x##*/}
|
||||
dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
|
||||
done
|
||||
|
||||
# install the @golang-rebuild set for Portage
|
||||
insinto /usr/share/portage/config/sets
|
||||
newins "${FILESDIR}"/go-sets.conf go.conf
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
[[ -z ${REPLACING_VERSIONS} ]] && return
|
||||
elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
|
||||
elog "all packages compiled with previous versions of ${CATEGORY}/${PN}"
|
||||
elog "due to the static linking nature of go."
|
||||
elog "If this is not done, the packages compiled with the older"
|
||||
elog "version of the compiler will not be updated until they are"
|
||||
elog "updated individually, which could mean they will have"
|
||||
elog "vulnerabilities."
|
||||
elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
|
||||
elog "See https://bugs.gentoo.org/752153 for more info"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user