From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-976878-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id DFF1B1396D0
	for <garchives@archives.gentoo.org>; Wed,  4 Oct 2017 22:01:28 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id D2FC32BC009;
	Wed,  4 Oct 2017 22:01:27 +0000 (UTC)
Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id A38222BC009
	for <gentoo-commits@lists.gentoo.org>; Wed,  4 Oct 2017 22:01:27 +0000 (UTC)
Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id 066B034172F
	for <gentoo-commits@lists.gentoo.org>; Wed,  4 Oct 2017 22:01:26 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 73CD99085
	for <gentoo-commits@lists.gentoo.org>; Wed,  4 Oct 2017 22:01:23 +0000 (UTC)
From: "William Hubbs" <williamh@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "William Hubbs" <williamh@gentoo.org>
Message-ID: <1507154401.7a11bc14b699ad8cd003731d4cda79bec5ec84d1.williamh@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/go/
X-VCS-Repository: repo/gentoo
X-VCS-Files: dev-lang/go/Manifest dev-lang/go/go-1.9.1.ebuild
X-VCS-Directories: dev-lang/go/
X-VCS-Committer: williamh
X-VCS-Committer-Name: William Hubbs
X-VCS-Revision: 7a11bc14b699ad8cd003731d4cda79bec5ec84d1
X-VCS-Branch: master
Date: Wed,  4 Oct 2017 22:01:23 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Archives-Salt: 6005bdeb-c341-4d7c-b551-dfbf7a5a0fa7
X-Archives-Hash: 56f37e96744408ab9532dedf940cf914

commit:     7a11bc14b699ad8cd003731d4cda79bec5ec84d1
Author:     William Hubbs <williamh <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  4 22:00:01 2017 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Wed Oct  4 22:00:01 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a11bc14

dev-lang/go: 1.9.1 version bump

Committed straight to stable on amd64 for volnerabilities discussed
here:

         https://groups.google.com/forum/m/#!topic/golang-nuts/sHfMg4gZNps

	 Bug: https://bugs.gentoo.org/show_bug.cgi?id=632408

Package-Manager: Portage-2.3.8, Repoman-2.3.3
RepoMan-Options: --force

 dev-lang/go/Manifest        |   1 +
 dev-lang/go/go-1.9.1.ebuild | 227 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 228 insertions(+)

diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest
index 38ab2d58e51..6294b6a058f 100644
--- a/dev-lang/go/Manifest
+++ b/dev-lang/go/Manifest
@@ -10,4 +10,5 @@ DIST go-linux-ppc64le-bootstrap-1.8.tbz 52211575 SHA256 4e05b8830a473756cfee3fc2
 DIST go-linux-s390x-bootstrap-1.8.tbz 57124869 SHA256 70bb859e80268b3421587d85189a807b14449b8c5e7b23606b87dfab54189634 SHA512 d429cae870d66217ab2e07c74209d3031d97baa4f899b4d70ae6283a1a5b1434b037904c4cfca0b2bc798d5ba0b358c3739e000eccbc74809baf564c5686df5a WHIRLPOOL d0475efcbc2c1cbb3c6db452dbeb2a5fe709fa56b65eba2fbbcce2296b6a04ba89b9e33579d6eab192cd63b45ad78a0d7afd458229e4b252e80bd2db260abf11
 DIST go-solaris-amd64-bootstrap-1.8.tbz 54926326 SHA256 83053f333d56d72ddbe9a8f293f8afeff31739806d49ebaa144811a5438b17bc SHA512 52b849e5b9a940e10de7ba3df0ebdf6e1c5d631de9581d936c9edf8f38e6bb3314acbc2b2d5202b0528fde2a359d52bc0c6f39acf9b1b614725e4b4a947ed10d WHIRLPOOL 2d58085d88fa612a7dfb087df33d2c5ee6b6d4c0b0c0363d5dcef014a6e3e9703816e8a111d1348e1e1a4ebcdde58694a869a27ae42e0deec154529f1a794991
 DIST go1.8.3.src.tar.gz 15345996 SHA256 5f5dea2447e7dcfdc50fa6b94c512e58bfba5673c039259fd843f68829d99fa6 SHA512 c6e67dd9e3acdf2aa776d920f91f3fb1802d624ba5d51e06b2c7c6b71bcfaf91f4024f7a442cecde69175c589f7f1163f0ae86d887e15ddde710e53ce0961284 WHIRLPOOL 918a13b5323c77093428890ac4759daa3f40bd9379df0b862f9ba0fcf7f0f99eb83e37294dec25329a792573b97ddccb417a43dc8cccbd41bf17df6b01ea77f2
+DIST go1.9.1.src.tar.gz 16377700 SHA256 a84afc9dc7d64fe0fa84d4d735e2ece23831a22117b50dafc75c1484f1cb550e SHA512 3c5d11089a54c61acd1a4fad9618ddb2058cc783a54564407ee50e37c864deaadfd5effeab623080c136a599096f448aae091ef41d0afca1abfcdb98adf4a793 WHIRLPOOL 1cdfddfbe2b432a783d821bf6caf6615868de7eeb71667fd38d77a115b87c0d5321d6928f271bbe7edd6e05d56f5a0e05b6fceeec5dd025673c0a0ad9224ad3e
 DIST go1.9.src.tar.gz 16377363 SHA256 a4ab229028ed167ba1986825751463605264e44868362ca8e7accc8be057e993 SHA512 70c4b892b6883fb21fc1a547a2b8d174df8c7aca282a3906e3816b4442b16c5da578b69c19443122a4a45e66fc95d170528d826b70932af09f4afd2a46615d74 WHIRLPOOL ffd7c37ac49ac55546f0712cdfae9eda83c6cbc10a6b495b021d7a5076bac1063f0a322622692f1b67142a995da2de7e297a43727502331788adac43163848a2

diff --git a/dev-lang/go/go-1.9.1.ebuild b/dev-lang/go/go-1.9.1.ebuild
new file mode 100644
index 00000000000..b22bdb39015
--- /dev/null
+++ b/dev-lang/go/go-1.9.1.ebuild
@@ -0,0 +1,227 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+
+MY_PV=${PV/_/}
+
+inherit toolchain-funcs
+
+BOOTSTRAP_DIST="https://dev.gentoo.org/~williamh/dist"
+BOOTSTRAP_VERSION="bootstrap-1.8"
+BOOTSTRAP_URI="
+amd64? ( ${BOOTSTRAP_DIST}/go-linux-amd64-${BOOTSTRAP_VERSION}.tbz )
+arm? ( ${BOOTSTRAP_DIST}/go-linux-arm-${BOOTSTRAP_VERSION}.tbz )
+arm64? ( ${BOOTSTRAP_DIST}/go-linux-arm64-${BOOTSTRAP_VERSION}.tbz )
+ppc64? (
+	${BOOTSTRAP_DIST}/go-linux-ppc64-${BOOTSTRAP_VERSION}.tbz
+	${BOOTSTRAP_DIST}/go-linux-ppc64le-${BOOTSTRAP_VERSION}.tbz
+)
+s390? ( ${BOOTSTRAP_DIST}/go-linux-s390x-${BOOTSTRAP_VERSION}.tbz )
+x86? ( ${BOOTSTRAP_DIST}/go-linux-386-${BOOTSTRAP_VERSION}.tbz )
+amd64-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-amd64-${BOOTSTRAP_VERSION}.tbz )
+x86-fbsd? ( ${BOOTSTRAP_DIST}/go-freebsd-386-${BOOTSTRAP_VERSION}.tbz )
+x64-macos? ( ${BOOTSTRAP_DIST}/go-darwin-amd64-${BOOTSTRAP_VERSION}.tbz )
+x64-solaris? ( ${BOOTSTRAP_DIST}/go-solaris-amd64-${BOOTSTRAP_VERSION}.tbz )
+"
+
+case ${PV}  in
+*9999*)
+	EGIT_REPO_URI="https://github.com/golang/go.git"
+	inherit git-r3
+	;;
+*)
+	SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
+	S="${WORKDIR}"/go
+	case ${PV} in
+	*_beta*|*_rc*) ;;
+	*)
+		KEYWORDS="-* amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd ~x64-macos ~x64-solaris"
+		# The upstream tests fail under portage but pass if the build is
+		# run according to their documentation [1].
+		# I am restricting the tests on released versions until this is
+		# solved.
+		# [1] https://golang.org/issues/18442
+		RESTRICT="test"
+		;;
+	esac
+esac
+SRC_URI+="!gccgo? ( ${BOOTSTRAP_URI} )"
+
+DESCRIPTION="A concurrent garbage collected and typesafe programming language"
+HOMEPAGE="https://golang.org"
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+IUSE="gccgo"
+
+DEPEND="gccgo? ( >=sys-devel/gcc-5[go] )"
+RDEPEND="!<dev-go/go-tools-0_pre20150902"
+
+# These test data objects have writable/executable stacks.
+QA_EXECSTACK="
+	usr/lib/go/src/debug/elf/testdata/*.obj
+	usr/lib/go/src/go/internal/gccgoimporter/testdata/unicode.gox
+	usr/lib/go/src/go/internal/gccgoimporter/testdata/time.gox
+	"
+
+# Do not complain about CFLAGS, etc, since Go doesn't use them.
+QA_FLAGS_IGNORED='.*'
+
+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/.*/.*"
+
+# Do not strip this package. Stripping is unsupported upstream and may
+# fail.
+RESTRICT+=" strip"
+
+DOCS=(
+AUTHORS
+CONTRIBUTING.md
+CONTRIBUTORS
+PATENTS
+README.md
+)
+
+go_arch()
+{
+	# By chance most portage arch names match Go
+	local portage_arch=$(tc-arch $@)
+	case "${portage_arch}" in
+		x86)	echo 386;;
+		x64-*)	echo amd64;;
+		ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
+		s390) echo s390x ;;
+		*)		echo "${portage_arch}";;
+	esac
+}
+
+go_arm()
+{
+	case "${1:-${CHOST}}" in
+		armv5*)	echo 5;;
+		armv6*)	echo 6;;
+		armv7*)	echo 7;;
+		*)
+			die "unknown GOARM for ${1:-${CHOST}}"
+			;;
+	esac
+}
+
+go_os()
+{
+	case "${1:-${CHOST}}" in
+		*-linux*)	echo linux;;
+		*-darwin*)	echo darwin;;
+		*-freebsd*)	echo freebsd;;
+		*-netbsd*)	echo netbsd;;
+		*-openbsd*)	echo openbsd;;
+		*-solaris*)	echo solaris;;
+		*-cygwin*|*-interix*|*-winnt*)
+			echo windows
+			;;
+		*)
+			die "unknown GOOS for ${1:-${CHOST}}"
+			;;
+	esac
+}
+
+go_tuple()
+{
+	echo "$(go_os $@)_$(go_arch $@)"
+}
+
+go_cross_compile()
+{
+	[[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
+}
+
+pkg_pretend()
+{
+	# make.bash does not understand cross-compiling a cross-compiler
+	if [[ $(go_tuple) != $(go_tuple ${CTARGET}) ]]; then
+		die "CHOST CTARGET pair unsupported: CHOST=${CHOST} CTARGET=${CTARGET}"
+	fi
+}
+
+src_unpack()
+{
+	if [[ ${PV} = 9999 ]]; then
+		git-r3_src_unpack
+	fi
+	default
+}
+
+src_compile()
+{
+	export GOROOT_BOOTSTRAP="${WORKDIR}"/go-$(go_os)-$(go_arch)-bootstrap
+	if use gccgo; then
+		mkdir -p "${GOROOT_BOOTSTRAP}/bin" || die
+		local go_binary=$(gcc-config --get-bin-path)/go-$(gcc-major-version)
+		[[ -x ${go_binary} ]] || go_binary=$(
+			find "${EPREFIX}"/usr/${CHOST}/gcc-bin/*/go-$(gcc-major-version) |
+				sort -V | tail -n1)
+		[[ -x ${go_binary} ]] ||
+			die "go-$(gcc-major-version): command not found"
+		ln -s "${go_binary}" "${GOROOT_BOOTSTRAP}/bin/go" || die
+	fi
+	export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
+	export GOROOT="$(pwd)"
+	export GOBIN="${GOROOT}/bin"
+
+	# Go's build script does not use BUILD/HOST/TARGET consistently. :(
+	export GOHOSTARCH=$(go_arch ${CBUILD})
+	export GOHOSTOS=$(go_os ${CBUILD})
+	export CC=$(tc-getBUILD_CC)
+
+	export GOARCH=$(go_arch)
+	export GOOS=$(go_os)
+	export CC_FOR_TARGET=$(tc-getCC)
+	export CXX_FOR_TARGET=$(tc-getCXX)
+	if [[ ${ARCH} == arm ]]; then
+		export GOARM=$(go_arm)
+	fi
+	einfo "GOROOT_BOOTSTRAP is ${GOROOT_BOOTSTRAP}"
+
+	cd src
+	./make.bash || die "build failed"
+}
+
+src_test()
+{
+	go_cross_compile && return 0
+
+	cd src
+	PATH="${GOBIN}:${PATH}" \
+	./run.bash -no-rebuild || die "tests failed"
+}
+
+src_install()
+{
+	local bin_path f x
+
+	dodir /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
+	#
+	# deliberately use cp to retain permissions
+	cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
+	if go_cross_compile; then
+		bin_path="bin/$(go_tuple)"
+	else
+		bin_path=bin
+	fi
+	for x in ${bin_path}/*; do
+		f=${x##*/}
+		dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
+	done
+	einstalldocs
+}