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 Aug 2020 18:52:34
Message-Id: 1596739939.7047696d1eb4be0e320b3482e74a9473fae62f46.williamh@gentoo
1 commit: 7047696d1eb4be0e320b3482e74a9473fae62f46
2 Author: William Hubbs <williamh <AT> gentoo <DOT> org>
3 AuthorDate: Thu Aug 6 18:47:47 2020 +0000
4 Commit: William Hubbs <williamh <AT> gentoo <DOT> org>
5 CommitDate: Thu Aug 6 18:52:19 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7047696d
7
8 dev-lang/go: 1.14.7 security bump
9
10 Bug: https://bugs.gentoo.org/736156
11 Signed-off-by: William Hubbs <williamh <AT> gentoo.org>
12
13 dev-lang/go/Manifest | 1 +
14 dev-lang/go/go-1.14.7.ebuild | 188 +++++++++++++++++++++++++++++++++++++++++++
15 2 files changed, 189 insertions(+)
16
17 diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest
18 index 9f7412defe3..6efb444dc1c 100644
19 --- a/dev-lang/go/Manifest
20 +++ b/dev-lang/go/Manifest
21 @@ -15,3 +15,4 @@ DIST go1.13.14.src.tar.gz 21704891 BLAKE2B fff860b45b296359cb226f123279b3351f654
22 DIST go1.13.15.src.tar.gz 21705183 BLAKE2B eac8c6113dd6cef164cc5368732c2dce26f200e309c728ca71b4c312ace465382b8cc1dd8fb216bdf927211d6cb26c21090a9ac9c9ef2d7ac1b16c85feac0e0c SHA512 35d3e7aaef1b0fc6ab684bb7352da3a23194115331ba7d1543225c35939cafcd437f454519aac38182cb8f222723ed9a297f9da566075b5e4079be26952a21e3
23 DIST go1.14.5.src.tar.gz 22533577 BLAKE2B 4e07fd46f977e14cf493d92a3c3e2d61c8eadf8f6e07b2de3eec7442d2ee0c736ac99f75eaaf405a48d1751144f4ae770692c3a1db9bc8e27e7c48e89fd74540 SHA512 1019b86304925fe60ebd81289349c4582e2e5932dc3ed35d9dc7b36ac293ee583ab6dcf3ae9a96f0f60274f24c295fb0662a8f4d06b717f624fa695c2b40e29c
24 DIST go1.14.6.src.tar.gz 22534714 BLAKE2B 9dacb150108dc30fe3600c6fdc1df3cd2c36f701518f402d2ad8cd2e4ba51203176e5097adf66ac9223181197b1bea7de625933c570567d9e7dddf485bc2c204 SHA512 5c865c8272fb0dc8eab1514732b0200dbc867276512714dd30afc658a0d2afac6bd758e00c6f576d8d254e411418a52a564c895399b56cfe06c2b1785271a8fd
25 +DIST go1.14.7.src.tar.gz 22534747 BLAKE2B ab43abeec9d636dd88eaa10dc210f5d11d487df35238a00548e1f56a86bdf2375e7c180ee6e1cea53591528714fa70333e3336db61eacfdeb5f51b2d5ea86a45 SHA512 3f1133c66d7795ceb6c5793db90616613244d7561abaef6b059602992c0b7a53b6b6ebbcf69add4769a58542e9dc55871bcfe3d64d4cd9f3569bd435ade86dee
26
27 diff --git a/dev-lang/go/go-1.14.7.ebuild b/dev-lang/go/go-1.14.7.ebuild
28 new file mode 100644
29 index 00000000000..fa07749bdeb
30 --- /dev/null
31 +++ b/dev-lang/go/go-1.14.7.ebuild
32 @@ -0,0 +1,188 @@
33 +# Copyright 1999-2020 Gentoo Authors
34 +# Distributed under the terms of the GNU General Public License v2
35 +
36 +EAPI=7
37 +
38 +export CBUILD=${CBUILD:-${CHOST}}
39 +export CTARGET=${CTARGET:-${CHOST}}
40 +
41 +MY_PV=${PV/_/}
42 +
43 +inherit toolchain-funcs
44 +
45 +case ${PV} in
46 +*9999*)
47 + EGIT_REPO_URI="https://github.com/golang/go.git"
48 + inherit git-r3
49 + ;;
50 +*)
51 + SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
52 + S="${WORKDIR}"/go
53 + case ${PV} in
54 + *_beta*|*_rc*) ;;
55 + *)
56 + KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
57 + ;;
58 + esac
59 +esac
60 +
61 +DESCRIPTION="A concurrent garbage collected and typesafe programming language"
62 +HOMEPAGE="https://golang.org"
63 +
64 +LICENSE="BSD"
65 +SLOT="0/${PV}"
66 +
67 +BDEPEND="|| (
68 + dev-lang/go
69 + dev-lang/go-bootstrap )"
70 +RDEPEND="!<dev-go/go-tools-0_pre20150902"
71 +
72 +# Do not complain about CFLAGS, etc, since Go doesn't use them.
73 +QA_FLAGS_IGNORED='.*'
74 +
75 +# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
76 +QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
77 +
78 +# Do not strip this package. Stripping is unsupported upstream and may
79 +# fail.
80 +RESTRICT+=" strip"
81 +
82 +DOCS=(
83 +AUTHORS
84 +CONTRIBUTING.md
85 +CONTRIBUTORS
86 +PATENTS
87 +README.md
88 +)
89 +
90 +go_arch()
91 +{
92 + # By chance most portage arch names match Go
93 + local portage_arch=$(tc-arch $@)
94 + case "${portage_arch}" in
95 + x86) echo 386;;
96 + x64-*) echo amd64;;
97 + ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
98 + s390) echo s390x ;;
99 + *) echo "${portage_arch}";;
100 + esac
101 +}
102 +
103 +go_arm()
104 +{
105 + case "${1:-${CHOST}}" in
106 + armv5*) echo 5;;
107 + armv6*) echo 6;;
108 + armv7*) echo 7;;
109 + *)
110 + die "unknown GOARM for ${1:-${CHOST}}"
111 + ;;
112 + esac
113 +}
114 +
115 +go_os()
116 +{
117 + case "${1:-${CHOST}}" in
118 + *-linux*) echo linux;;
119 + *-darwin*) echo darwin;;
120 + *-freebsd*) echo freebsd;;
121 + *-netbsd*) echo netbsd;;
122 + *-openbsd*) echo openbsd;;
123 + *-solaris*) echo solaris;;
124 + *-cygwin*|*-interix*|*-winnt*)
125 + echo windows
126 + ;;
127 + *)
128 + die "unknown GOOS for ${1:-${CHOST}}"
129 + ;;
130 + esac
131 +}
132 +
133 +go_tuple()
134 +{
135 + echo "$(go_os $@)_$(go_arch $@)"
136 +}
137 +
138 +go_cross_compile()
139 +{
140 + [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
141 +}
142 +
143 +src_compile()
144 +{
145 + if has_version -b dev-lang/go; then
146 + export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
147 + elif has_version -b dev-lang/go-bootstrap; then
148 + export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
149 + else
150 + eerror "Go cannot be built without go or go-bootstrap installed"
151 + die "Should not be here, please report a bug"
152 + fi
153 +
154 + export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
155 + export GOROOT="$(pwd)"
156 + export GOBIN="${GOROOT}/bin"
157 +
158 + # Go's build script does not use BUILD/HOST/TARGET consistently. :(
159 + export GOHOSTARCH=$(go_arch ${CBUILD})
160 + export GOHOSTOS=$(go_os ${CBUILD})
161 + export CC=$(tc-getBUILD_CC)
162 +
163 + export GOARCH=$(go_arch)
164 + export GOOS=$(go_os)
165 + export CC_FOR_TARGET=$(tc-getCC)
166 + export CXX_FOR_TARGET=$(tc-getCXX)
167 + if [[ ${ARCH} == arm ]]; then
168 + export GOARM=$(go_arm)
169 + fi
170 +
171 + cd src
172 + bash -x ./make.bash || die "build failed"
173 +}
174 +
175 +src_test()
176 +{
177 + go_cross_compile && return 0
178 +
179 + cd src
180 + PATH="${GOBIN}:${PATH}" \
181 + ./run.bash -no-rebuild || die "tests failed"
182 + cd ..
183 + rm -fr pkg/*_race || die
184 + rm -fr pkg/obj/go-build || die
185 +}
186 +
187 +src_install()
188 +{
189 + local bin_path f x
190 +
191 + dodir /usr/lib/go
192 +
193 + # There is a known issue which requires the source tree to be installed [1].
194 + # Once this is fixed, we can consider using the doc use flag to control
195 + # installing the doc and src directories.
196 + # [1] https://golang.org/issue/2775
197 + #
198 + # deliberately use cp to retain permissions
199 + cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
200 + # testdata directories are not needed on the installed system
201 + rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
202 + if go_cross_compile; then
203 + bin_path="bin/$(go_tuple)"
204 + else
205 + bin_path=bin
206 + fi
207 + for x in ${bin_path}/*; do
208 + f=${x##*/}
209 + dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
210 + done
211 + einstalldocs
212 +
213 + if [[ ${CHOST} == *-darwin* ]] ; then
214 + # fix install_name for test object (binutils_test) on Darwin, it
215 + # is never used in real circumstances
216 + local libmac64="${EPREFIX}"/usr/lib/go/src/cmd/vendor/github.com/
217 + libmac64+=google/pprof/internal/binutils/testdata/lib_mac_64
218 + install_name_tool -id "${libmac64}" "${D}${libmac64}"
219 + fi
220 +}