<br><br><div class="gmail_quote">On Fri Jan 30 2015 at 6:23:06 PM Luca Bruno <<a href="mailto:lucab@debian.org">lucab@debian.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thursday 29 January 2015 08:38:18 Sylvestre Ledru wrote:<br>
<br>
> > The main differences with the current packaging and mine are:<br>
> >  (1) I build-dep on a hypothetical existing rustc package by default<br>
> ><br>
> > and use build profiles to skip this and download stage0 at build time<br>
> > for bootstrapping.<br>
><br>
> Well, how do you manage that fact that builds don't have network access?<br></blockquote><div><br></div><div>I was trying to follow existing precedents of bootstrapping other toolchains and circular build-dependencies:</div><div><br></div><div>In the distant future, the rustc package will clearly build-dep on rustc (>= some version) and this won't even be exciting.  Just like bootstrapping other circular-dependent toolchains (eg: haskell, python), we need to apply some manual black-magic to bootstrap the first package and temporarily break that circular dependency.</div><div><br></div><div>So: with my packaging, the "normal" build requires rustc already installed (and thus is impossible for the first packages, and likely also impossible once we correctly specify the (narrow!) range of rustc compilers required).  Bootstrapping requires a manual build, and thus downloading off the internet at build-time seemed as bad as any other option - and easier to type ;)</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Putting aside the network issue, I'm also interested in looking at how<br>
flexible build-profiles are for supporting different bootstrapping options.<br>
I'm still new to it, though, so having a look at your work here would be<br>
great.<br>
Can you please push to some personal repo and post the link here?<br></blockquote><div><br></div><div>Yep, repo here: <a href="https://github.com/anguslees/rust/compare/debian/experimental">https://github.com/anguslees/rust/compare/debian/experimental</a></div><div><br></div><div>Build profiles seem to work quite well, assuming you have recent (jessie) versions of dpkg-buildpackage, etc.  Use "apt-get source -b -P dlstage0", "dpkg-buildpackage -Pdlstage0", or similar to ignore the build-dep and build with a downloaded stage0.</div><div><br></div><div>We could of course use a build-profile to switch between use-embedded-stage0 and use-rustc-build-dep as well.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> I think it is good for rust-[gdb, lldb}, too early for librust-std.<br>
> We tried to document that here:<br>
> <a href="http://anonscm.debian.org/cgit/pkg-rust/rust.git/tree/debian/README.Debian" target="_blank">http://anonscm.debian.org/<u></u>cgit/pkg-rust/rust.git/tree/<u></u>debian/README.Debian</a><br>
<br>
Same for me for the runtime (and we still don't have a clear path for<br>
soname/sohash bumping).<br></blockquote><div><br></div><div>Agreed, I'll start a separate thread for that.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The gdb stuff is pretty small (really just a pretty-printer), and I expect it<br>
to be used mostly by people who also have the compiler installed.<br>
<br>
On the other hand, I haven't yet tried it but I think some stuff there could<br>
be improved (like, I think there is a standard path for gdb pretty-printers,<br>
but then we should avoid breaking rust wrapper);<br>
in that case, we'd better split them all to avoid pulling-in too many<br>
dependencies.<br></blockquote><div><br></div><div>Indeed, you'll see I rewrote the trivial rust-gdb and rust-lldb wrappers to just hardcode the formatter paths and no longer require rustc executable at run-time.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This seems a self-contained TODO point which I don't plan to touch soon, so<br>
feel to work on it if you want to. Ideally, write some notes on where stuff<br>
should go and why, for the rest us :)<br></blockquote><div><br></div><div> - Gus </div></div>