[Pkg-rust-maintainers] Upstream has changed the bootstrap process

Ximin Luo infinity0 at debian.org
Sat Jul 9 22:14:46 UTC 2016


Ximin Luo:
> Angus Lees:
>> Thanks Ximin!  I've been poking at it myself over the last few nights, and
>> got to roughly where you are.  The big outstanding issue for me is
>> verifying that we can (re)build with the same release, since this will
>> require a different path into the build system (aiui).  I think I know how
>> this needs to work, but I'm only now at the point where I can actually try
>> it :/
> 
> I just built 1.10.0 by bootstrapping from 1.9.0. Then I installed this 1.10.0 and tried to build the same version again by bootstrapping from itself. This is what I got:
> 
> $ dpkg-buildpackage -b
> [..]
> CFG_LLVM_LINKAGE_FILE=/media/xda1/data/infinity0/tmp/rust/rebuild/rustc-1.10.0+dfsg1/x86_64-unknown-linux-gnu/rt/llvmdeps.rs LD_LIBRARY_PATH=/media/xda1/data/infinity0/tmp/rust/rebuild/rustc-1.10.0+dfsg1/x86_64-unknown-linux-gnu/stage0/lib:/usr/lib/llvm-3.7/lib:$LD_LIBRARY_PATH   x86_64-unknown-linux-gnu/stage0/bin/rustc --cfg stage0 -C link-args=-Wl,-z,relro -O --cfg rtopt -C rpath -C prefer-dynamic -C no-stack-check --target=x86_64-unknown-linux-gnu   -L "x86_64-unknown-linux-gnu/rt" -L native="/usr/lib/llvm-3.7/lib"     --out-dir x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib -C extra-filename=-e8edd0fd -C metadata=e8edd0fd src/libcore/lib.rs
> src/libcore/lib.rs:63:1: 63:37 error: #[feature] may not be used on the stable release channel
> src/libcore/lib.rs:63 #![feature(allow_internal_unstable)]
>                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> [..]
> etc more errors like the above
> [..]
> dpkg-buildpackage: error: debian/rules build gave error exit status 2
> 2
> 
> which sounds like the problem I ran into a few emails ago. There is something called a "bootstrap key" that lets you "unlock" unstable features of a particular compiler, so we would have to do something with this - see my earlier email for more details.
> 

OK, I can make the build work again by applying this patch:

--- a/src/stage0.txt
+++ b/src/stage0.txt
@@ -12,6 +12,6 @@
 # tarball for a stable release you'll likely see `1.x.0-$date` where `1.x.0` was
 # released on `$date`
 
-rustc: 1.9.0-2016-05-24
-rustc_key: d16b8f0e
-cargo: nightly-2016-04-10
+rustc: 1.10.0-2016-07-07
+rustc_key: e8edd0fd
+cargo: nightly-0

This seems fairly easy to automate in a generic way in debian/rules, I will have a go at it soon. After that, I'd suggest we upload, then figure out how to automate the build+testing (that you mentioned) separately.

X

-- 
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git



More information about the Pkg-rust-maintainers mailing list