Skip to content

Commit

Permalink
dev-lang/rust: fix network-less builds
Browse files Browse the repository at this point in the history
When building without a network connection or FEATURES=network-sandbox
the build would fail due to the build process reaching out to the
internet to fetch down some files that the package manager already got
for it. This neuters that network access and uses the existing files.

Signed-off-by: Doug Goldstein <[email protected]>
  • Loading branch information
cardoe committed Oct 24, 2016
1 parent e7a7f6c commit d63d593
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
36 changes: 36 additions & 0 deletions dev-lang/rust/files/rust-1.12.0-disable-fetching-stage0.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
From b6a4c78ef7b4bc6c32145f27e8a679d5baf36f90 Mon Sep 17 00:00:00 2001
From: Doug Goldstein <[email protected]>
Date: Mon, 24 Oct 2016 00:01:37 -0500
Subject: [PATCH] disable fetching stage0 and use whats there

In Gentoo and Yocto alike we do not allow build environments network
access and as a result the package manager is responsible for fetching
down all the files necessary. In both they are configured to fetch down
the compiler and unpack it and place the stage0 tarball inside of the
'dl' directory for the build system to use. Unfortunately it
unconditionally attempts to fetch down the files and ignores what is
already available so this avoids that behavior and just uses what's in
the 'dl' directory.

Upstream-Status: Not upstreamable
Signed-off-by: Doug Goldstein <[email protected]>
---
src/etc/get-stage0.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/etc/get-stage0.py b/src/etc/get-stage0.py
index 127251c..2889c07 100644
--- a/src/etc/get-stage0.py
+++ b/src/etc/get-stage0.py
@@ -31,7 +31,7 @@ def main(triple):
filename = 'rustc-{}-{}.tar.gz'.format(channel, triple)
url = 'https://static.rust-lang.org/dist/{}/{}'.format(date, filename)
dst = dl_dir + '/' + filename
- bootstrap.get(url, dst)
+ #bootstrap.get(url, dst)

stage0_dst = triple + '/stage0'
if os.path.exists(stage0_dst):
--
2.7.3

2 changes: 2 additions & 0 deletions dev-lang/rust/rust-1.12.0.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ PDEPEND=">=app-eselect/eselect-rust-0.3_pre20150425"

S="${WORKDIR}/${MY_P}"

PATCHES=("${FILESDIR}/rust-1.12.0-disable-fetching-stage0.patch")

src_unpack() {
unpack "rustc-${PV}-src.tar.gz" || die
mkdir "${MY_P}/dl" || die
Expand Down
2 changes: 2 additions & 0 deletions dev-lang/rust/rust-1.12.1.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ PDEPEND=">=app-eselect/eselect-rust-0.3_pre20150425"

S="${WORKDIR}/${MY_P}"

PATCHES=("${FILESDIR}/rust-1.12.0-disable-fetching-stage0.patch")

src_unpack() {
unpack "rustc-${PV}-src.tar.gz" || die
mkdir "${MY_P}/dl" || die
Expand Down

0 comments on commit d63d593

Please sign in to comment.