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)

Reply via email to