go-bootstrap-20171003.ebuild (1819B)
1 # Copyright 1999-2018 Gentoo Foundation 2 # Distributed under the terms of the GNU General Public License v2 3 4 EAPI=6 5 6 inherit eutils toolchain-funcs 7 8 DESCRIPTION="Boostrap Go from C (useful for musl libc)" 9 HOMEPAGE="https://golang.org/doc/install/source" 10 SRC_URI="https://dl.google.com/go/go1.4-bootstrap-${PV}.tar.gz -> ${P}.tar.gz" 11 12 LICENSE="BSD" 13 SLOT="0" 14 KEYWORDS="~amd64 ~x86" 15 IUSE="" 16 17 DEPEND="" 18 RDEPEND="" 19 20 RESTRICT="mirror" 21 22 # The go tools should not cause the multilib-strict check to fail. 23 QA_MULTILIB_PATHS="usr/lib/go1.4/pkg/tool/.*/.*" 24 25 # The go language uses *.a files which are _NOT_ libraries and should not be 26 # stripped. The test data objects should also be left alone and unstripped. 27 STRIP_MASK="/usr/lib/go1.4/pkg/*.a 28 /usr/lib/go1.4/src/debug/elf/testdata/* 29 /usr/lib/go1.4/src/debug/dwarf/testdata/* 30 /usr/lib/go1.4/src/runtime/race/*.syso 31 " 32 33 S="${WORKDIR}/go" 34 35 src_prepare() { 36 sed -i -e 's/"-Werror",//g' src/cmd/dist/build.c 37 38 default 39 } 40 41 src_compile() { 42 export GOROOT_FINAL="${EPREFIX}/usr/lib/go1.4" 43 export GOROOT="$(pwd)" 44 export GOBIN="${GOROOT}/bin" 45 export CGO_ENABLED=0 46 47 tc-export CC 48 49 cd src 50 ./make.bash || die "build failed" 51 } 52 53 src_install() { 54 dodir /usr/lib/go1.4 55 exeinto /usr/lib/go1.4/bin 56 doexe bin/* 57 insinto /usr/lib/go1.4 58 doins -r lib pkg src 59 fperms -R +x /usr/lib/go1.4/pkg/tool 60 } 61 62 pkg_postinst() { 63 # If the go tool sees a package file timestamped older than a dependancy it 64 # will rebuild that file. So, in order to stop go from rebuilding lots of 65 # packages for every build we need to fix the timestamps. The compiler and 66 # linker are also checked - so we need to fix them too. 67 ebegin "fixing timestamps to avoid unnecessary rebuilds" 68 tref="usr/lib/go1.4/pkg/*/runtime.a" 69 find "${EROOT}"usr/lib/go1.4 -type f \ 70 -exec touch -r "${EROOT}"${tref} {} \; 71 eend $? 72 }