[Pkg-rust-maintainers] Hi :)

Angus Lees gus at debian.org
Mon Feb 2 01:10:48 UTC 2015


On Fri Jan 30 2015 at 6:23:06 PM Luca Bruno <lucab at debian.org> wrote:

> On Thursday 29 January 2015 08:38:18 Sylvestre Ledru wrote:
>
> > > The main differences with the current packaging and mine are:
> > >  (1) I build-dep on a hypothetical existing rustc package by default
> > >
> > > and use build profiles to skip this and download stage0 at build time
> > > for bootstrapping.
> >
> > Well, how do you manage that fact that builds don't have network access?
>

I was trying to follow existing precedents of bootstrapping other
toolchains and circular build-dependencies:

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.

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 ;)

Putting aside the network issue, I'm also interested in looking at how
> flexible build-profiles are for supporting different bootstrapping options.
> I'm still new to it, though, so having a look at your work here would be
> great.
> Can you please push to some personal repo and post the link here?
>

Yep, repo here:
https://github.com/anguslees/rust/compare/debian/experimental

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.

We could of course use a build-profile to switch between
use-embedded-stage0 and use-rustc-build-dep as well.

> I think it is good for rust-[gdb, lldb}, too early for librust-std.
> > We tried to document that here:
> > http://anonscm.debian.org/cgit/pkg-rust/rust.git/tree/
> debian/README.Debian
>
> Same for me for the runtime (and we still don't have a clear path for
> soname/sohash bumping).
>

Agreed, I'll start a separate thread for that.


> The gdb stuff is pretty small (really just a pretty-printer), and I expect
> it
> to be used mostly by people who also have the compiler installed.
>
> On the other hand, I haven't yet tried it but I think some stuff there
> could
> be improved (like, I think there is a standard path for gdb
> pretty-printers,
> but then we should avoid breaking rust wrapper);
> in that case, we'd better split them all to avoid pulling-in too many
> dependencies.
>

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.

This seems a self-contained TODO point which I don't plan to touch soon, so
> feel to work on it if you want to. Ideally, write some notes on where stuff
> should go and why, for the rest us :)
>

 - Gus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-rust-maintainers/attachments/20150202/4f21be40/attachment.html>


More information about the Pkg-rust-maintainers mailing list