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
+}
