Gentoo Archives: gentoo-commits

From: William Hubbs <williamh@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/go/
Date: Thu, 06 Sep 2018 18:43:11
Message-Id: 1536259348.45c6612bee746f8fe03100b68fc5217e28e60775.williamh@gentoo
1 commit: 45c6612bee746f8fe03100b68fc5217e28e60775
2 Author: William Hubbs <williamh <AT> gentoo <DOT> org>
3 AuthorDate: Thu Sep 6 18:37:01 2018 +0000
4 Commit: William Hubbs <williamh <AT> gentoo <DOT> org>
5 CommitDate: Thu Sep 6 18:42:28 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=45c6612b
7
8 dev-lang/go: 1.11 version bump
9
10 Package-Manager: Portage-2.3.40, Repoman-2.3.9
11
12 dev-lang/go/Manifest | 1 +
13 dev-lang/go/go-1.11.ebuild | 228 +++++++++++++++++++++++++++++++++++++++++++++
14 2 files changed, 229 insertions(+)
15
16 diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest
17 index 6bdcbc9fe71..2c24b6ca655 100644
18 --- a/dev-lang/go/Manifest
19 +++ b/dev-lang/go/Manifest
20 @@ -12,5 +12,6 @@ DIST go-solaris-amd64-bootstrap-1.8.tbz 54926326 BLAKE2B 0a45312f090d81ebf46fe59
21 DIST go1.10.1.src.tar.gz 18305765 BLAKE2B 61b8db22c50b9a4653244dc18267f405607755932d84ea2c475338a9f4a5421da2bb8cc808dbd166aa35c3c8778180bf47d6e51ebe303bc62e582516919058f9 SHA512 13f6b0643a4f92eeca04444b9fa10de38fc3427daea9aa3227cf9a5738ffee1a3f2e355ba5faf711b8506f7de118bdcd3b9064b65407a22613523e29ffd73415
22 DIST go1.10.2.src.tar.gz 18308678 BLAKE2B 5f16757f879e9be9d2e936bc5e3cefcfd32914dbe7def8252b20ac647c90cfae09dfd7ff782f55cee4b3fecda6cc88c547f20087b571dbd06bc7600510c788bc SHA512 754e60bce1ea3479ebb57bbbb625e3d7875a151e7a6d7a1067478a9e45bde5423f47123d084832bb838acf7675a9d05057b76c1d773e43cae0fb4e7a52acf4a9
23 DIST go1.10.3.src.tar.gz 18323736 BLAKE2B f07ea774378eb25e28fc29ce6d8d7ed84227d4b93bfa93d38a071fe294da30c3cdc3a559d643e7379873df56b0e2731dbd772e385ffcb4b2e93819db3b4e33f2 SHA512 fd2bd5fcb5c6d0a5336c4b1d2cacb368edbb01359297a83bdedc53f6018642598232f00633fc60fde879050f5f26a810c828d46b5d6626cbcc0702d93ad33fbb
24 +DIST go1.11.src.tar.gz 21091932 BLAKE2B 029b1c43b6244ab320b24fccca2bac693a0df0f975da2880a24e85fafbd7d6c836f63c609f1df44fb3eacc1c66c3d147858b7a2b9c0c370bb8fdbc8614b35713 SHA512 2758b7924b4b8cffc30b56fbf039b8e23d1a3c42506ed4997bd64531ba742e2c60e95d1fa70cae2ccda45d1959fadccfd2404af87d962530e4b1d3556c4aaf43
25 DIST go1.9.6.src.tar.gz 16397247 BLAKE2B 36c9077177bd7bbe9b40c422c5faf7aa83fdd8a2360051cb026346a9fea35297d892d6c677962c498ea8531c1748d58a55bbb1db7c1cf323a1d65c0b9b8573fd SHA512 f7863a4fe586414c91465a6a82a47097b2593384688a7c68ad3e9981559047b4faf2c134104ad09a64125576dac557809884d9f125d91108dd51746620a368a2
26 DIST go1.9.7.src.tar.gz 16401688 BLAKE2B f6fa7b7171595f6bb2b1860c10a34c386b781504b772a37b60ccd613850f916a463bdb1e2bf299c3d8e78e38cbdf0b59e1ee8dfc3597ef888450efb3eb6afc49 SHA512 1ed3375870223a73c9cf94839bfd8894b92f44f9a3ba3b2bec1e9cd8d2212519344c8afcb87a516d6ad3e1ccdc74d9dba225a222bdc5e60f6d73cb474d5f7664
27
28 diff --git a/dev-lang/go/go-1.11.ebuild b/dev-lang/go/go-1.11.ebuild
29 new file mode 100644
30 index 00000000000..8c2ff887401
31 --- /dev/null
32 +++ b/dev-lang/go/go-1.11.ebuild
33 @@ -0,0 +1,228 @@
34 +# Copyright 1999-2018 Gentoo Foundation
35 +# Distributed under the terms of the GNU General Public License v2
36 +
37 +EAPI=6
38 +
39 +export CBUILD=${CBUILD:-${CHOST}}
40 +export CTARGET=${CTARGET:-${CHOST}}
41 +
42 +MY_PV=${PV/_/}
43 +
44 +inherit toolchain-funcs
45 +
46 +BOOTSTRAP_DIST="https://dev.gentoo.org/~williamh/dist"
47 +BOOTSTRAP_VERSION="bootstrap-1.8"
48 +BOOTSTRAP_URI="
49 +amd64? ( ${BOOTSTRAP_DIST}/go-linux-amd64-${BOOTSTRAP_VERSION}.tbz )
50 +arm? ( ${BOOTSTRAP_DIST}/go-linux-arm-${BOOTSTRAP_VERSION}.tbz )
51 +arm64? ( ${BOOTSTRAP_DIST}/go-linux-arm64-${BOOTSTRAP_VERSION}.tbz )
52 +ppc64? (
53 + ${BOOTSTRAP_DIST}/go-linux-ppc64-${BOOTSTRAP_VERSION}.tbz
54 + ${BOOTSTRAP_DIST}/go-linux-ppc64le-${BOOTSTRAP_VERSION}.tbz
55 +)
56 +s390? ( ${BOOTSTRAP_DIST}/go-linux-s390x-${BOOTSTRAP_VERSION}.tbz )
57 +x86? ( ${BOOTSTRAP_DIST}/go-linux-386-${BOOTSTRAP_VERSION}.tbz )
58 +amd64-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-amd64-${BOOTSTRAP_VERSION}.tbz )
59 +x86-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-386-${BOOTSTRAP_VERSION}.tbz )
60 +x64-macos? ( ${BOOTSTRAP_DIST}/go-darwin-amd64-${BOOTSTRAP_VERSION}.tbz )
61 +x64-solaris? ( ${BOOTSTRAP_DIST}/go-solaris-amd64-${BOOTSTRAP_VERSION}.tbz )
62 +"
63 +
64 +case ${PV} in
65 +*9999*)
66 + EGIT_REPO_URI="https://github.com/golang/go.git"
67 + inherit git-r3
68 + ;;
69 +*)
70 + SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
71 + S="${WORKDIR}"/go
72 + case ${PV} in
73 + *_beta*|*_rc*) ;;
74 + *)
75 + KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc64 ~s390 ~x86 ~amd64-fbsd ~x86-fbsd ~x64-macos ~x64-solaris"
76 + # The upstream tests fail under portage but pass if the build is
77 + # run according to their documentation [1].
78 + # I am restricting the tests on released versions until this is
79 + # solved.
80 + # [1] https://golang.org/issues/18442
81 + RESTRICT="test"
82 + ;;
83 + esac
84 +esac
85 +SRC_URI+="!gccgo? ( ${BOOTSTRAP_URI} )"
86 +
87 +DESCRIPTION="A concurrent garbage collected and typesafe programming language"
88 +HOMEPAGE="https://golang.org"
89 +
90 +LICENSE="BSD"
91 +SLOT="0/${PV}"
92 +IUSE="gccgo"
93 +
94 +DEPEND="gccgo? ( >=sys-devel/gcc-5[go] )"
95 +RDEPEND="!<dev-go/go-tools-0_pre20150902"
96 +
97 +# These test data objects have writable/executable stacks.
98 +QA_EXECSTACK="
99 + usr/lib/go/src/debug/elf/testdata/*.obj
100 + usr/lib/go/src/go/internal/gccgoimporter/testdata/escapeinfo.gox
101 + usr/lib/go/src/go/internal/gccgoimporter/testdata/unicode.gox
102 + usr/lib/go/src/go/internal/gccgoimporter/testdata/time.gox
103 + "
104 +
105 +# Do not complain about CFLAGS, etc, since Go doesn't use them.
106 +QA_FLAGS_IGNORED='.*'
107 +
108 +REQUIRES_EXCLUDE="/usr/lib/go/src/debug/elf/testdata/*"
109 +
110 +# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
111 +QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
112 +
113 +# Do not strip this package. Stripping is unsupported upstream and may
114 +# fail.
115 +RESTRICT+=" strip"
116 +
117 +DOCS=(
118 +AUTHORS
119 +CONTRIBUTING.md
120 +CONTRIBUTORS
121 +PATENTS
122 +README.md
123 +)
124 +
125 +go_arch()
126 +{
127 + # By chance most portage arch names match Go
128 + local portage_arch=$(tc-arch $@)
129 + case "${portage_arch}" in
130 + x86) echo 386;;
131 + x64-*) echo amd64;;
132 + ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
133 + s390) echo s390x ;;
134 + *) echo "${portage_arch}";;
135 + esac
136 +}
137 +
138 +go_arm()
139 +{
140 + case "${1:-${CHOST}}" in
141 + armv5*) echo 5;;
142 + armv6*) echo 6;;
143 + armv7*) echo 7;;
144 + *)
145 + die "unknown GOARM for ${1:-${CHOST}}"
146 + ;;
147 + esac
148 +}
149 +
150 +go_os()
151 +{
152 + case "${1:-${CHOST}}" in
153 + *-linux*) echo linux;;
154 + *-darwin*) echo darwin;;
155 + *-freebsd*) echo freebsd;;
156 + *-netbsd*) echo netbsd;;
157 + *-openbsd*) echo openbsd;;
158 + *-solaris*) echo solaris;;
159 + *-cygwin*|*-interix*|*-winnt*)
160 + echo windows
161 + ;;
162 + *)
163 + die "unknown GOOS for ${1:-${CHOST}}"
164 + ;;
165 + esac
166 +}
167 +
168 +go_tuple()
169 +{
170 + echo "$(go_os $@)_$(go_arch $@)"
171 +}
172 +
173 +go_cross_compile()
174 +{
175 + [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
176 +}
177 +
178 +pkg_pretend()
179 +{
180 + # make.bash does not understand cross-compiling a cross-compiler
181 + if [[ $(go_tuple) != $(go_tuple ${CTARGET}) ]]; then
182 + die "CHOST CTARGET pair unsupported: CHOST=${CHOST} CTARGET=${CTARGET}"
183 + fi
184 +}
185 +
186 +src_unpack()
187 +{
188 + if [[ ${PV} = 9999 ]]; then
189 + git-r3_src_unpack
190 + fi
191 + default
192 +}
193 +
194 +src_compile()
195 +{
196 + export GOROOT_BOOTSTRAP="${WORKDIR}"/go-$(go_os)-$(go_arch)-bootstrap
197 + if use gccgo; then
198 + mkdir -p "${GOROOT_BOOTSTRAP}/bin" || die
199 + local go_binary=$(gcc-config --get-bin-path)/go-$(gcc-major-version)
200 + [[ -x ${go_binary} ]] || go_binary=$(
201 + find "${EPREFIX}"/usr/${CHOST}/gcc-bin/*/go-$(gcc-major-version) |
202 + sort -V | tail -n1)
203 + [[ -x ${go_binary} ]] ||
204 + die "go-$(gcc-major-version): command not found"
205 + ln -s "${go_binary}" "${GOROOT_BOOTSTRAP}/bin/go" || die
206 + fi
207 + export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
208 + export GOROOT="$(pwd)"
209 + export GOBIN="${GOROOT}/bin"
210 +
211 + # Go's build script does not use BUILD/HOST/TARGET consistently. :(
212 + export GOHOSTARCH=$(go_arch ${CBUILD})
213 + export GOHOSTOS=$(go_os ${CBUILD})
214 + export CC=$(tc-getBUILD_CC)
215 +
216 + export GOARCH=$(go_arch)
217 + export GOOS=$(go_os)
218 + export CC_FOR_TARGET=$(tc-getCC)
219 + export CXX_FOR_TARGET=$(tc-getCXX)
220 + if [[ ${ARCH} == arm ]]; then
221 + export GOARM=$(go_arm)
222 + fi
223 + einfo "GOROOT_BOOTSTRAP is ${GOROOT_BOOTSTRAP}"
224 +
225 + cd src
226 + ./make.bash || die "build failed"
227 +}
228 +
229 +src_test()
230 +{
231 + go_cross_compile && return 0
232 +
233 + cd src
234 + PATH="${GOBIN}:${PATH}" \
235 + ./run.bash -no-rebuild || die "tests failed"
236 +}
237 +
238 +src_install()
239 +{
240 + local bin_path f x
241 +
242 + dodir /usr/lib/go
243 +
244 + # There is a known issue which requires the source tree to be installed [1].
245 + # Once this is fixed, we can consider using the doc use flag to control
246 + # installing the doc and src directories.
247 + # [1] https://golang.org/issue/2775
248 + #
249 + # deliberately use cp to retain permissions
250 + cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
251 + if go_cross_compile; then
252 + bin_path="bin/$(go_tuple)"
253 + else
254 + bin_path=bin
255 + fi
256 + for x in ${bin_path}/*; do
257 + f=${x##*/}
258 + dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
259 + done
260 + einstalldocs
261 +}