commit: c58e3dba67e7593f145f930e7b4fdecb218eb723 Author: William Hubbs <williamh <AT> gentoo <DOT> org> AuthorDate: Wed Mar 6 20:20:38 2024 +0000 Commit: William Hubbs <williamh <AT> gentoo <DOT> org> CommitDate: Wed Mar 6 20:26:07 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c58e3dba
dev-lang/go: update EAPI 7 -> 8 also bootstrap with go-bootstrap instead of downloading the bootstrap binaries in this ebuild. Signed-off-by: William Hubbs <williamh <AT> gentoo.org> dev-lang/go/go-1.22.1.ebuild | 78 +++++++++++++------------------------------- 1 file changed, 22 insertions(+), 56 deletions(-) diff --git a/dev-lang/go/go-1.22.1.ebuild b/dev-lang/go/go-1.22.1.ebuild index 6b21274bfbf5..46b65d884a62 100644 --- a/dev-lang/go/go-1.22.1.ebuild +++ b/dev-lang/go/go-1.22.1.ebuild @@ -1,56 +1,24 @@ # Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 export CBUILD=${CBUILD:-${CHOST}} export CTARGET=${CTARGET:-${CHOST}} +# See "Bootstrap" in release notes +GO_BOOTSTRAP_MIN=1.20.14 MY_PV=${PV/_/} inherit toolchain-funcs -# See "Bootstrap" in release notes -# GO_BV is set to the minimum version of go required to bootstrap the -# current version. -GO_BV=1.20.14 -BOOTSTRAP_DIST="https://dev.gentoo.org/~williamh/dist" -SRC_URI=" - !system-bootstrap? ( - amd64? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-linux-amd64-bootstrap.tbz ) - arm? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-linux-arm-bootstrap.tbz ) - arm64? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-linux-arm64-bootstrap.tbz ) - loong? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-linux-loong64-bootstrap.tbz ) - mips? ( - abi_mips_o32? ( - big-endian? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-linux-mips-bootstrap.tbz ) - !big-endian? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-linux-mipsle-bootstrap.tbz ) - ) - abi_mips_n64? ( - big-endian? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-linux-mips64-bootstrap.tbz ) - !big-endian? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-linux-mips64le-bootstrap.tbz ) - ) - ) - ppc64? ( - big-endian? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-linux-ppc64-bootstrap.tbz ) - !big-endian? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-linux-ppc64le-bootstrap.tbz ) - ) - riscv? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-linux-riscv64-bootstrap.tbz ) - s390? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-linux-s390x-bootstrap.tbz ) - x86? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-linux-386-bootstrap.tbz ) - x64-macos? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-darwin-amd64-bootstrap.tbz ) - arm64-macos? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-darwin-arm64-bootstrap.tbz ) - x64-solaris? ( ${BOOTSTRAP_DIST}/go-${GO_BV}-solaris-amd64-bootstrap.tbz ) - ) - " - 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 " + SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz " S="${WORKDIR}"/go case ${PV} in *_beta*|*_rc*) ;; @@ -65,11 +33,14 @@ HOMEPAGE="https://go.dev" LICENSE="BSD" SLOT="0/${PV}" -IUSE="abi_mips_o32 abi_mips_n64 big-endian system-bootstrap" +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' @@ -154,12 +125,20 @@ PATCHES=( "${FILESDIR}"/go-never-download-newer-toolchains.patch ) -src_unpack() { - default - [[ ${PV} == *9999* ]] && git-r3_src_unpack -} - 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}) @@ -172,19 +151,6 @@ src_compile() { use arm && export GOARM=$(go_arm) use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat') - export GOROOT="${PWD}" - if use system-bootstrap; then - if has_version <dev-lang/go-${GO_BV}; then - eerror "You need at least dev-lang/go-${GO_BV} installed to bootstrap this version of go" - die "version of go is too old" - fi - export GOROOT_BOOTSTRAP="${EPREFIX}/usr/lib/go" - else - export GOROOT_BOOTSTRAP="${WORKDIR}/go-${GOOS}-${GOARCH}-bootstrap" - fi - export GOROOT_FINAL="${EPREFIX}"/usr/lib/go - export GOBIN="${GOROOT}/bin" - cd src bash -x ./make.bash || die "build failed" } @@ -211,7 +177,7 @@ src_install() { einstalldocs insinto /usr/lib/go - doins go.env VERSION* + 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)