[Pkg-rust-maintainers] Bootstrap of rust
Jordan Justen
jljusten at gmail.com
Wed Jan 21 04:03:26 UTC 2015
On 2015-01-20 01:46:24, Luca Bruno wrote:
> On Tuesday 20 January 2015 09:25:57 Sylvestre Ledru wrote:
>
> > Hello,
> >
> > + Paul who showed some interest in this :)
>
> Just to recap, we had a brief exchange with Paul on Feb 2014, where
> he expressed some concerns with an embedded stage0 blob, and suggested
> to ask ftp-master for a shared/official statement on this.
> I
> asked them twice by mail (on 07/02/2014 and 02/03/2014) but
> never got any answer. After that real-life took over my free time
> for rust, so the discussion died.
>
> > About the bootstrap, I am not sure that copying the compiler in
> > debian/dl/ is the best way.
>
> Me neither.
> At worse (if we keep shipping stage0), we should make use of multiple
> upstream tarball support[0], as it is not a debian delta we are
> shipping here.
> [0] https://wiki.debian.org/Projects/DebSrc3.0#How_to_use_multiple_upstream_tarball_in_3.0_.28quilt.29_format.3F
I added a new script: debian/make_orig-dl_tarball.py
It will download the stage0 snapshots and generate
../rust_$VERSION.orig-dl.tar.gz.
It appears to be working, so I deleted debian/dl.
I suppose, since there hasn't been an upload yet, we might consider
nuking debian/dl in the history and doing a force push. This should
allow git gc to reclaim the stage0 binary space from the git repo.
> > AFAIK, the "right" way to bootstrap a compiler:
> > * Build a local instance of the compiler on your system (whatever the
> > method is)
> > * Package the newly built compiler
> > * Use the package to build compiler
> > * Upload this package
> >
> > Once the package is in the archive, use the official package to build
> > the new version of the compiler.
>
> Been there, tried that. I collected some notes on the wiki[1].
>
> In theory it's all good. In practice:
> * upstream periodically snapshots stage0. This happens multiple times
> between releases, so I don't expect eg. 1.0.1 to be bootstrappable
> from 1.0.0 (experienced this somewhere around the 0.8->0.9 release)
> * requirements are pretty tight, and when a language feature change
> rustc cannot bootstrap itself (experienced this when trying to
> self-boostrap from local .deb, somewhere around 0.9-pre)
> * stage0 are in strictly-chained linear series. This means we cannot
> miss even a single snapshot, otherwise next bootstrap could fail.
> Moreover, also due to first point above, bootstrapping across
> non-adjacent package releases (ie. Stretch->Buster or similar) won't work
>
> [1] https://wiki.debian.org/Teams/RustPackaging/Bootstrap
>
> Please note that those are notes I collected last time I was full-digging into it,
> which was circa 1 year ago. Things may have improved in the meanwhile and 1.0 will
> come with some sort of language stability.
> I'm still in the process of updating my knowledge on this, but due to past experience
> I won't personally expect to be able to do what suggested above without a lengthy
> blood-bath. But I'll be very happy to see that things are now much better! :)
I'm not sure this would be helpful, but I did get a rust-bin package
about 75% complete. It basically would just install the binaries that
the rust team releases.
I'd rather not mess with it anymore, unless there is some plausible
scenario where it could help with bootstrapping.
-Jordan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-rust-maintainers/attachments/20150120/3140620e/attachment.sig>
More information about the Pkg-rust-maintainers
mailing list