dev-util/bazel: Uprev ebuild to 0.14.1

Pick from Gentoo portage as of commit 59832c2ae8b20635e3ae3f34ce426bedbda0205a.

BUG=chromium:820295
TEST=sudo emerge bazel

Change-Id: I2f3da6ee9fe89d758bda3f3e84dec752a2cf511d
Reviewed-on: https://chromium-review.googlesource.com/1107018
Commit-Ready: Michael Martis <martis@chromium.org>
Tested-by: Michael Martis <martis@chromium.org>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
diff --git a/dev-util/bazel/Manifest b/dev-util/bazel/Manifest
index 7945bd2..305a5b6 100644
--- a/dev-util/bazel/Manifest
+++ b/dev-util/bazel/Manifest
@@ -1 +1,2 @@
-DIST bazel-0.13.0-dist.zip 90105262 SHA256 82e9035084660b9c683187618a29aa896f8b05b5f16ae4be42a80b5e5b6a7690 SHA512 3c128e551cff1b685250a68892ca3e1ad6be8b152ee2b8eb527c94adbb8fd50c70e703a363bb938916275030ddb14d756c14e4dc238e7a7b40289c700c5d53c7 WHIRLPOOL 1ef08773709908615676b4eb84e73f4edf4fd9c9ccad45fef6fed10c00e4bbcbde2d49fb810d60100270e5780f9d765582d90521220b7a2038d0b2685682d12f
+DIST bazel-0.14.1-dist.zip 89415405 BLAKE2B 7be5d4630d024d235a66f6bdf495c282b04a4034dde156c50d37a7e2eb3bf98df0caead7887f421b664fe92486e6baa5cd90e61b1e82b07b1691dc509ab93a68 SHA512 02c7125438f060d8e5e25b91ce3ca76fac6681b4f12033d807955a4ca5a5c22a3508a7229581b7349f35f343911f8408f43f8d78d54601277576dd32539e4681
+DIST google-desugar_jdk_libs-f5e6d80c6b4ec6b0a46603f72b015d45cf3c11cd.zip 1056996 BLAKE2B bf168c41a9958bcdc679a40d1e88911c6af0e47207362204326b712e0129b37348360a855f44af8b76acc46108ac89a707d0c0f793500c513a919070248939b9 SHA512 40cb9ffcaa3c57c69bcbec7b070fad5865e7317817049b7588dd42899054eb97cd17cb0019df99ad2324ed8e2efd8334cd83ace758a4c2d3f453503ccf54a91e
diff --git a/dev-util/bazel/bazel-0.13.0.ebuild b/dev-util/bazel/bazel-0.13.0.ebuild
deleted file mode 100644
index c868fdf..0000000
--- a/dev-util/bazel/bazel-0.13.0.ebuild
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit bash-completion-r1 java-pkg-2
-
-DESCRIPTION="Fast and correct automated build system"
-HOMEPAGE="http://bazel.io/"
-SRC_URI="https://github.com/bazelbuild/bazel/releases/download/${PV}/${P}-dist.zip"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="*"
-IUSE="examples tools zsh-completion"
-# strip corrupts the bazel binary
-RESTRICT="strip"
-RDEPEND="virtual/jdk:1.8"
-DEPEND="${RDEPEND}
-	app-arch/unzip
-	app-arch/zip"
-
-S="${WORKDIR}"
-
-pkg_setup() {
-	echo ${PATH} | grep -q ccache && \
-		ewarn "${PN} usually fails to compile with ccache, you have been warned"
-	java-pkg-2_pkg_setup
-}
-
-src_compile() {
-	# F: fopen_wr
-	# S: deny
-	# P: /proc/self/setgroups
-	# A: /proc/self/setgroups
-	# R: /proc/24939/setgroups
-	# C: /usr/lib/systemd/systemd
-	addpredict /proc
-	VERBOSE=yes ./compile.sh || die
-	# Use standalone strategy to deactivate the bazel sandbox, since it
-	# conflicts with FEATURES=sandbox.
-	echo "build --verbose_failures --spawn_strategy=standalone --genrule_strategy=standalone" \
-		> "${T}/bazelrc" || die
-	output/bazel --bazelrc="${T}/bazelrc" build scripts:bazel-complete.bash || die
-	mv bazel-bin/scripts/bazel-complete.bash output/ || die
-}
-
-src_test() {
-	output/bazel test \
-		--verbose_failures \
-		--spawn_strategy=standalone \
-		--genrule_strategy=standalone \
-		--verbose_test_summary \
-		examples/cpp:hello-success_test || die
-}
-
-src_install() {
-	output/bazel shutdown
-	dobin output/bazel
-	newbashcomp output/bazel-complete.bash ${PN}
-	bashcomp_alias ${PN} ibazel
-	if use zsh-completion ; then
-		insinto /usr/share/zsh/site-functions
-		doins scripts/zsh_completion/_bazel
-	fi
-	if use examples; then
-		docinto examples
-		dodoc -r examples/*
-		docompress -x /usr/share/doc/${PF}/examples
-	fi
-	# could really build tools but I don't know which ones
-	# are actually used
-	if use tools; then
-		docinto tools
-		dodoc -r tools/*
-		docompress -x /usr/share/doc/${PF}/tools
-	fi
-}
diff --git a/dev-util/bazel/bazel-0.14.1.ebuild b/dev-util/bazel/bazel-0.14.1.ebuild
new file mode 100644
index 0000000..492151c
--- /dev/null
+++ b/dev-util/bazel/bazel-0.14.1.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1 java-pkg-2 multiprocessing
+
+DESCRIPTION="Fast and correct automated build system"
+HOMEPAGE="http://bazel.io/"
+
+bazel_external_uris="https://github.com/google/desugar_jdk_libs/archive/f5e6d80c6b4ec6b0a46603f72b015d45cf3c11cd.zip -> google-desugar_jdk_libs-f5e6d80c6b4ec6b0a46603f72b015d45cf3c11cd.zip"
+SRC_URI="https://github.com/bazelbuild/bazel/releases/download/${PV}/${P}-dist.zip
+	${bazel_external_uris}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="*"
+IUSE="examples tools zsh-completion"
+# strip corrupts the bazel binary
+RESTRICT="strip"
+RDEPEND="virtual/jdk:1.8"
+DEPEND="${RDEPEND}
+	app-arch/unzip
+	app-arch/zip"
+
+S="${WORKDIR}"
+
+bazel-get-flags() {
+	local i fs=()
+	for i in ${CFLAGS}; do
+		fs+=( "--copt=${i}" "--host_copt=${i}" )
+	done
+	for i in ${CXXFLAGS}; do
+		fs+=( "--cxxopt=${i}" "--host_cxxopt=${i}" )
+	done
+	for i in ${CPPFLAGS}; do
+		fs+=( "--copt=${i}" "--host_copt=${i}" )
+		fs+=( "--cxxopt=${i}" "--host_cxxopt=${i}" )
+	done
+	for i in ${LDFLAGS}; do
+		fs+=( "--linkopt=${i}" "--host_linkopt=${i}" )
+	done
+	echo "${fs[*]}"
+}
+
+load_distfiles() {
+	# Populate the bazel distdir to fetch from since it cannot use the network
+	local s d uri rename
+	mkdir -p "${T}/bazel-distdir" || die "failed to create distdir"
+
+	while read uri rename d; do
+		[[ -z "$uri" ]] && continue
+		if [[ "$rename" == "->" ]]; then
+			s="${uri##*/}"
+			einfo "Copying $d to bazel distdir $s ..."
+		else
+			s="${uri##*/}"
+			d="${s}"
+			einfo "Copying $d to bazel distdir ..."
+		fi
+		cp "${DISTDIR}/${d}" "${T}/bazel-distdir/${s}" || die
+	done <<< "${bazel_external_uris}"
+}
+
+pkg_setup() {
+	echo ${PATH} | grep -q ccache && \
+		ewarn "${PN} usually fails to compile with ccache, you have been warned"
+	java-pkg-2_pkg_setup
+}
+
+src_unpack() {
+	# Only unpack the main distfile
+	unpack ${P}-dist.zip
+}
+
+src_prepare() {
+	load_distfiles
+	default
+
+	# F: fopen_wr
+	# S: deny
+	# P: /proc/self/setgroups
+	# A: /proc/self/setgroups
+	# R: /proc/24939/setgroups
+	# C: /usr/lib/systemd/systemd
+	addpredict /proc
+
+	# Use standalone strategy to deactivate the bazel sandbox, since it
+	# conflicts with FEATURES=sandbox.
+	cat > "${T}/bazelrc" <<-EOF
+	build --verbose_failures
+	build --spawn_strategy=standalone --genrule_strategy=standalone
+
+	build --experimental_distdir=${T}/bazel-distdir
+	build --jobs=$(makeopts_jobs) $(bazel-get-flags)
+
+	test --verbose_failures --verbose_test_summary
+	test --spawn_strategy=standalone --genrule_strategy=standalone
+	EOF
+
+	echo "import ${T}/bazelrc" >> "${S}/.bazelrc"
+}
+
+src_compile() {
+	export EXTRA_BAZEL_ARGS="--jobs=$(makeopts_jobs)"
+	VERBOSE=yes ./compile.sh || die
+	output/bazel --bazelrc="${T}/bazelrc" build scripts:bazel-complete.bash || die
+	mv bazel-bin/scripts/bazel-complete.bash output/ || die
+}
+
+src_test() {
+	output/bazel test \
+		--verbose_failures \
+		--spawn_strategy=standalone \
+		--genrule_strategy=standalone \
+		--verbose_test_summary \
+		examples/cpp:hello-success_test || die
+}
+
+src_install() {
+	output/bazel shutdown
+	dobin output/bazel
+	newbashcomp output/bazel-complete.bash ${PN}
+	bashcomp_alias ${PN} ibazel
+	if use zsh-completion ; then
+		insinto /usr/share/zsh/site-functions
+		doins scripts/zsh_completion/_bazel
+	fi
+	if use examples; then
+		docinto examples
+		dodoc -r examples/*
+		docompress -x /usr/share/doc/${PF}/examples
+	fi
+	# could really build tools but I don't know which ones
+	# are actually used
+	if use tools; then
+		docinto tools
+		dodoc -r tools/*
+		docompress -x /usr/share/doc/${PF}/tools
+	fi
+}