go: add ebuild to bootstrap dev-lang/go.

This commit is contained in:
Andrius Štikonas 2020-06-29 22:30:51 +01:00
parent 8ec774a93c
commit 9bf843cffa
2 changed files with 129 additions and 0 deletions

2
dev-lang/go/Manifest Normal file
View File

@ -0,0 +1,2 @@
DIST go1.4-bootstrap-20171003.tar.gz 11009739 BLAKE2B 44653911a8276767ba5b357c1e759d8ab3c39b964c44e0c263a4a6a4d77a7dc8f8b31a56c51386e36ae2f749f406673e89ba8f6ade1bbe015ead79eb005aa709 SHA512 2f65d5035d2b4ae8610c3337e0fcba64692c63953b54bf735f634da3532c6573ed08927865bf068b00a3885663815c5efc7dbd9a1b3d6337c9a0c62168aabca7
EBUILD go-1.4.ebuild 3272 BLAKE2B 8d8762dec62c21f9bce1577fdd753fb1160dfd4d09cfa3ac31644f735f54d8390dea57adf82d252de5a6962c282dead784b7616f65ec7034912dbce16ae4372a SHA512 17ce9095599ac9e7f481fe7ffe0093faa6bb1be7b1559e08c826c23bc21833290fb438b6db67df0f3a93d386d1189d020cee6d242c59888ec95ac2319e7c4423

127
dev-lang/go/go-1.4.ebuild Normal file
View File

@ -0,0 +1,127 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
export CTARGET=${CTARGET:-${CHOST}}
inherit eutils toolchain-funcs
SRC_URI="https://storage.googleapis.com/golang/go1.4-bootstrap-20171003.tar.gz"
# Upstream only supports go on amd64, arm and x86 architectures.
KEYWORDS="-* amd64 arm x86 ~amd64-fbsd ~x86-fbsd ~x64-macos ~x86-macos ~x64-solaris"
DESCRIPTION="A concurrent garbage collected and typesafe programming language"
HOMEPAGE="http://www.golang.org"
LICENSE="BSD"
SLOT="0"
IUSE=""
DEPEND=""
RDEPEND=""
# These test data objects have writable/executable stacks.
QA_EXECSTACK="
usr/lib/go/src/debug/elf/testdata/go-relocation-test-gcc482-aarch64.obj
usr/lib/go/src/debug/elf/testdata/gcc-amd64-openbsd-debug-with-rela.obj"
REQUIRES_EXCLUDE="/usr/lib/go/src/debug/elf/testdata/*"
# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
# The go language uses *.a files which are _NOT_ libraries and should not be
# stripped.
STRIP_MASK="/usr/lib/go/pkg/linux*/*.a /usr/lib/go/pkg/freebsd*/*.a /usr/lib/go/pkg/darwin*/*.a"
if [[ ${PV} != 9999 ]]; then
S="${WORKDIR}"/go
fi
src_prepare()
{
if [[ ${PV} != 9999 ]]; then
sed -i -e 's#"-Werror",##g' src/cmd/dist/build.c ||
die "sed failed"
fi
epatch_user
}
src_compile()
{
export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
export GOROOT="$(pwd)"
export GOBIN="${GOROOT}/bin"
if [[ $CTARGET = armv5* ]]
then
export GOARM=5
fi
tc-export CC
cd src
./make.bash || die "build failed"
}
src_test()
{
cd src
PATH="${GOBIN}:${PATH}" \
./run.bash --no-rebuild --banner || die "tests failed"
}
src_install()
{
dodoc AUTHORS CONTRIBUTORS PATENTS README
dodir /usr/lib/go
insinto /usr/lib/go
# There is a known issue which requires the source tree to be installed [1].
# Once this is fixed, we can consider using the doc use flag to control
# installing the doc and src directories.
# [1] https://golang.org/issue/2775
doins -r doc include lib pkg src
fperms -R +x /usr/lib/go/pkg/tool
into /usr/lib/go/
dobin bin/*
}
pkg_preinst()
{
has_version '<dev-lang/go-1.4' &&
export had_support_files=true ||
export had_support_files=false
}
pkg_postinst()
{
# If the go tool sees a package file timestamped older than a dependancy it
# will rebuild that file. So, in order to stop go from rebuilding lots of
# packages for every build we need to fix the timestamps. The compiler and
# linker are also checked - so we need to fix them too.
ebegin "fixing timestamps to avoid unnecessary rebuilds"
tref="usr/lib/go/pkg/*/runtime.a"
find "${EROOT}"usr/lib/go -type f \
-exec touch -r "${EROOT}"${tref} {} \;
eend $?
if [[ ${PV} != 9999 && -n ${REPLACING_VERSIONS} &&
${REPLACING_VERSIONS} != ${PV} ]]; then
elog "Release notes are located at http://golang.org/doc/go1.4"
fi
if $had_support_files; then
ewarn
ewarn "All editor support, IDE support, shell completion"
ewarn "support, etc has been removed from the go package"
ewarn "upstream."
ewarn "For more information on which support is available, see"
ewarn "the following URL:"
ewarn "https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins"
fi
}