dev-lang/rust: fix network-less builds
authorDoug Goldstein <cardoe@gentoo.org>
Mon, 24 Oct 2016 05:26:05 +0000 (00:26 -0500)
committerDoug Goldstein <cardoe@gentoo.org>
Mon, 24 Oct 2016 05:27:17 +0000 (00:27 -0500)
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 <cardoe@gentoo.org>
dev-lang/rust/files/rust-1.12.0-disable-fetching-stage0.patch [new file with mode: 0644]
dev-lang/rust/rust-1.12.0.ebuild
dev-lang/rust/rust-1.12.1.ebuild

diff --git a/dev-lang/rust/files/rust-1.12.0-disable-fetching-stage0.patch b/dev-lang/rust/files/rust-1.12.0-disable-fetching-stage0.patch
new file mode 100644 (file)
index 0000000..14d0b32
--- /dev/null
@@ -0,0 +1,36 @@
+From b6a4c78ef7b4bc6c32145f27e8a679d5baf36f90 Mon Sep 17 00:00:00 2001
+From: Doug Goldstein <cardoe@cardoe.com>
+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 <cardoe@cardoe.com>
+---
+ 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
+
index ca00a6b2a937f6919b41fc2a192783e43da897bd..e608fbde2b38eff00e513f4ee71b520baf6e64fb 100644 (file)
@@ -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
index ca00a6b2a937f6919b41fc2a192783e43da897bd..e608fbde2b38eff00e513f4ee71b520baf6e64fb 100644 (file)
@@ -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