logo

overlay

My own overlay for experimentations, use with caution, no support is provided git clone https://hacktivis.me/git/overlay.git
commit: 6a793742095d69408586539e6be625a3423a951c
parent 73c838f4bf5c878ed73303f85d647d88067c1a58
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Sun,  9 Jul 2023 17:06:12 +0200

dev-lang/go: Move to slot 0, improve from dev-lang/go::gentoo-bootstrap

Diffstat:

Ddev-lang/go/go-0.20171003.ebuild72------------------------------------------------------------------------
Adev-lang/go/go-1.4_p20171003.ebuild81+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 81 insertions(+), 72 deletions(-)

diff --git a/dev-lang/go/go-0.20171003.ebuild b/dev-lang/go/go-0.20171003.ebuild @@ -1,72 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit toolchain-funcs - -MY_PV="${PV//0./}" - -DESCRIPTION="Boostrap Go from C (useful for musl libc)" -HOMEPAGE="https://golang.org/doc/install/source" -SRC_URI="https://dl.google.com/go/go1.4-bootstrap-${MY_PV}.tar.gz" - -LICENSE="BSD" -SLOT="bootstrap" -KEYWORDS="~amd64 ~x86" -IUSE="" - -DEPEND="" -RDEPEND="" - -# The go tools should not cause the multilib-strict check to fail. -QA_MULTILIB_PATHS="usr/lib/go1.4/pkg/tool/.*/.*" - -# The go language uses *.a files which are _NOT_ libraries and should not be -# stripped. The test data objects should also be left alone and unstripped. -STRIP_MASK="/usr/lib/go1.4/pkg/*.a - /usr/lib/go1.4/src/debug/elf/testdata/* - /usr/lib/go1.4/src/debug/dwarf/testdata/* - /usr/lib/go1.4/src/runtime/race/*.syso -" - -S="${WORKDIR}/go" - -src_prepare() { - sed -i -e 's/"-Werror",//g' src/cmd/dist/build.c - - default -} - -src_compile() { - export GOROOT_FINAL="${EPREFIX}/usr/lib/go1.4" - export GOROOT="$(pwd)" - export GOBIN="${GOROOT}/bin" - export CGO_ENABLED=0 - - tc-export CC - - cd src - ./make.bash || die "build failed" -} - -src_install() { - dodir /usr/lib/go1.4 - exeinto /usr/lib/go1.4/bin - doexe bin/* - insinto /usr/lib/go1.4 - doins -r lib pkg src - fperms -R +x /usr/lib/go1.4/pkg/tool -} - -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/go1.4/pkg/*/runtime.a" - find "${EROOT}/usr/lib/go1.4" -type f \ - -exec touch -r "${EROOT}/${tref}" {} \; - eend $? -} diff --git a/dev-lang/go/go-1.4_p20171003.ebuild b/dev-lang/go/go-1.4_p20171003.ebuild @@ -0,0 +1,81 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +MY_PV="${PV//1.4_p/}" + +DESCRIPTION="Boostrap Go from C (useful for musl libc)" +HOMEPAGE="https://golang.org/doc/install/source" +SRC_URI="https://dl.google.com/go/go1.4-bootstrap-${MY_PV}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND="" +RDEPEND="" + +# The go tools should not cause the multilib-strict check to fail. +QA_MULTILIB_PATHS="usr/lib/go1.4/pkg/tool/.*/.*" + +# The go language uses *.a files which are _NOT_ libraries and should not be +# stripped. The test data objects should also be left alone and unstripped. +STRIP_MASK="/usr/lib/go1.4/pkg/*.a + /usr/lib/go1.4/src/debug/elf/testdata/* + /usr/lib/go1.4/src/debug/dwarf/testdata/* + /usr/lib/go1.4/src/runtime/race/*.syso +" + +S="${WORKDIR}/go" + +DOCS=( AUTHORS CONTRIBUTORS PATENTS README ) + +src_prepare() { + sed -i -e 's/"-Werror",//g' src/cmd/dist/build.c || die + + default +} + +src_compile() { + export GOROOT_FINAL="${EPREFIX}/usr/lib/go" + export GOROOT="$(pwd)" + export GOBIN="${GOROOT}/bin" + export CGO_ENABLED=0 + + 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() { + einstalldocs + + doins -r doc include lib pkg src + fperms -R +x /usr/lib/go/pkg/tool + + exeinto /usr/lib/go/bin + doexe bin/* +} + +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/go1.4/pkg/*/runtime.a" + find "${EROOT}/usr/lib/go1.4" -type f \ + -exec touch -r "${EROOT}/${tref}" {} \; + eend $? +}