mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
dev-lang/go: add 1.21.0
Signed-off-by: William Hubbs <williamh@gentoo.org>
This commit is contained in:
@@ -2,3 +2,4 @@ DIST go1.19.10.src.tar.gz 26563069 BLAKE2B 2aec01a67ba3e61f83b635bdf830bf6407342
|
||||
DIST go1.19.12.src.tar.gz 26575152 BLAKE2B 27f7053922e9329f0a3365c6623a7df1a0ef3383cc8fc5f5dac7f74415a558924fa930ae0c5010986573efa877f571ebe3b1835e916a9d927d7121555f2361c6 SHA512 15488e6f9ce86a4ca5650bb9df7845abb11ada0d11fb9a1b048f8c1f7047ad677b45e6c4026eff41c81a14adaa1bf78826f8e81000e7083dbbb6055a31b894e1
|
||||
DIST go1.20.5.src.tar.gz 26192951 BLAKE2B 13ab06a45a7b13eb5cf8886594343bc169df3c4ff0062ac89c0997283686563edccb7d39423457947f945782bef418ab1a1f3b8712aa8817a8f4c61b54e8574c SHA512 94cecb366cd9d9722b53e52ea3b0a5715a9e9dc21da0273dd3db9354557f71b9501b018125ef073dacc2e59125335f436cea1151cd8df0d60e2ad513f841905c
|
||||
DIST go1.20.7.src.tar.gz 26192928 BLAKE2B 89a1b2bde472c22534e63585cd8fcff6076a16a7f1d15e90ec5cf5277225ae3bf53805531b256d0090cb170ed7e1bd1ed494cffcf5b3777f435bbb3591906612 SHA512 c3dae709d0db8ab32a68bda2d260ffe86ee77c703bdbf34eefd0e1f745dd0aa04e3d17833877e7f06aa066686da501a85361591e510a341affc0244dde2b9946
|
||||
DIST go1.21.0.src.tar.gz 26942359 BLAKE2B ba04a8b20d4ea35cd6f32e5975a347c9359b9e9d2bf77196afb50b6f527d69623cdc7900c74abe5315e53589e0be20aef5eb4a5faa0efa836ed22db12d041203 SHA512 da629fee156de6abbc5195f746e2fe4172a31b97eccd3871283c60452e81ac740533cc28ca68762ebc0ce48fb791dc527d3b7ebe7e1aee0f0b68868de736ed42
|
||||
|
||||
13
dev-lang/go/files/go-never-download-newer-toolchains.patch
Normal file
13
dev-lang/go/files/go-never-download-newer-toolchains.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/go.env b/go.env
|
||||
index 6ff2b921d4..1112a19c9b 100644
|
||||
--- a/go.env
|
||||
+++ b/go.env
|
||||
@@ -7,6 +7,6 @@
|
||||
GOPROXY=https://proxy.golang.org,direct
|
||||
GOSUMDB=sum.golang.org
|
||||
|
||||
-# Automatically download newer toolchains as directed by go.mod files.
|
||||
+# Never download newer toolchains.
|
||||
# See https://go.dev/doc/toolchain for details.
|
||||
-GOTOOLCHAIN=auto
|
||||
+GOTOOLCHAIN=local
|
||||
213
dev-lang/go/go-1.21.0.ebuild
Normal file
213
dev-lang/go/go-1.21.0.ebuild
Normal file
@@ -0,0 +1,213 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
export CBUILD=${CBUILD:-${CHOST}}
|
||||
export CTARGET=${CTARGET:-${CHOST}}
|
||||
|
||||
# See "Bootstrap" in release notes
|
||||
GO_BOOTSTRAP_MIN=1.17.13
|
||||
MY_PV=${PV/_/}
|
||||
|
||||
inherit 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="abi_mips_o32 abi_mips_n64 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_arch() {
|
||||
# By chance most portage arch names match Go
|
||||
local tc_arch=$(tc-arch $@)
|
||||
case "${tc_arch}" in
|
||||
x86) echo 386;;
|
||||
x64-*) echo amd64;;
|
||||
loong) echo loong64;;
|
||||
mips) if use abi_mips_o32; then
|
||||
[[ $(tc-endian $@) = big ]] && echo mips || echo mipsle
|
||||
elif use abi_mips_n64; then
|
||||
[[ $(tc-endian $@) = big ]] && echo mips64 || echo mips64le
|
||||
fi ;;
|
||||
ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
|
||||
riscv) echo riscv64 ;;
|
||||
s390) echo s390x ;;
|
||||
*) echo "${tc_arch}";;
|
||||
esac
|
||||
}
|
||||
|
||||
go_arm() {
|
||||
case "${1:-${CHOST}}" in
|
||||
armv5*) echo 5;;
|
||||
armv6*) echo 6;;
|
||||
armv7*) echo 7;;
|
||||
*)
|
||||
die "unknown GOARM for ${1:-${CHOST}}"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
go_os() {
|
||||
case "${1:-${CHOST}}" in
|
||||
*-linux*) echo linux;;
|
||||
*-darwin*) echo darwin;;
|
||||
*-freebsd*) echo freebsd;;
|
||||
*-netbsd*) echo netbsd;;
|
||||
*-openbsd*) echo openbsd;;
|
||||
*-solaris*) echo solaris;;
|
||||
*-cygwin*|*-interix*|*-winnt*)
|
||||
echo windows
|
||||
;;
|
||||
*)
|
||||
die "unknown GOOS for ${1:-${CHOST}}"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
go_tuple() {
|
||||
echo "$(go_os $@)_$(go_arch $@)"
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
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_arch ${CBUILD})
|
||||
export GOHOSTOS=$(go_os ${CBUILD})
|
||||
export CC=$(tc-getBUILD_CC)
|
||||
|
||||
export GOARCH=$(go_arch)
|
||||
export GOOS=$(go_os)
|
||||
export CC_FOR_TARGET=$(tc-getCC)
|
||||
export CXX_FOR_TARGET=$(tc-getCXX)
|
||||
use arm && export GOARM=$(go_arm)
|
||||
use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat')
|
||||
|
||||
cd src
|
||||
bash -x ./make.bash || die "build failed"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
go_cross_compile && return 0
|
||||
|
||||
cd src
|
||||
|
||||
# https://github.com/golang/go/issues/42005
|
||||
rm cmd/link/internal/ld/fallocate_test.go || true
|
||||
|
||||
PATH="${GOBIN}:${PATH}" \
|
||||
./run.bash -no-rebuild || 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
|
||||
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)
|
||||
|
||||
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
|
||||
|
||||
# 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"
|
||||
}
|
||||
Reference in New Issue
Block a user