commit:     d63d593dfdc5fb7dd1256663daac7b978aa892af
Author:     Doug Goldstein <cardoe <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 24 05:26:05 2016 +0000
Commit:     Doug Goldstein <cardoe <AT> gentoo <DOT> org>
CommitDate: Mon Oct 24 05:27:17 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d63d593d

dev-lang/rust: fix network-less builds

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 <AT> gentoo.org>

 .../rust-1.12.0-disable-fetching-stage0.patch      | 36 ++++++++++++++++++++++
 dev-lang/rust/rust-1.12.0.ebuild                   |  2 ++
 dev-lang/rust/rust-1.12.1.ebuild                   |  2 ++
 3 files changed, 40 insertions(+)

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
index 00000000..14d0b32
--- /dev/null
+++ b/dev-lang/rust/files/rust-1.12.0-disable-fetching-stage0.patch
@@ -0,0 +1,36 @@
+From b6a4c78ef7b4bc6c32145f27e8a679d5baf36f90 Mon Sep 17 00:00:00 2001
+From: Doug Goldstein <car...@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 <car...@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
+

diff --git a/dev-lang/rust/rust-1.12.0.ebuild b/dev-lang/rust/rust-1.12.0.ebuild
index ca00a6b..e608fbd 100644
--- a/dev-lang/rust/rust-1.12.0.ebuild
+++ b/dev-lang/rust/rust-1.12.0.ebuild
@@ -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

diff --git a/dev-lang/rust/rust-1.12.1.ebuild b/dev-lang/rust/rust-1.12.1.ebuild
index ca00a6b..e608fbd 100644
--- a/dev-lang/rust/rust-1.12.1.ebuild
+++ b/dev-lang/rust/rust-1.12.1.ebuild
@@ -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

Reply via email to