<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Mon, 18 Jul 2016 at 11:55 Ximin Luo <<a href="mailto:infinity0@debian.org">infinity0@debian.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Angus Lees:<br>
>    - Install the required dependencies "somehow"<br>
>    - For Rust+arm this probably means installing the upstream pre-built<br>
>       compiler, as you've suggested.  For new architectures it will require a<br>
>       working cross-compiler (and LLVM support).<br>
>    - Use it to build rustc.deb<br>
>       - Possibly by hacking the build-deps to remove dependencies that<br>
>       can't be satisfied through the packaging system, but I think we have the<br>
>       right build profiles in place to make manual edits unnecessary.<br>
>    - Use the resulting rustc.deb (and other build-deps) to build a "clean"<br>
>    rustc.deb, with no build-profiles or manual debian/control hacks.<br>
>    - Upload the resulting clean rustc.deb (binary-only upload).<br>
><br>
<br>
I roughly understand this approach, and AIUI we can reduce the first few steps (install deps "somehow", use it to build) to `dpkg-buildpackage -P dlstage0`. However I'm not convinced that the benefit of "not uploading a orig-dl.tar.gz" outweighs the loss of automation and reduced trust.<br>
<br>
With your approach, I have to do this on every new architecture, download all the results to the machine I have my keys on, debsign them then upload them. OTOH, I could do a single source-only upload directly from my machine with the orig-dl tarball, and the buildd network will do the rest all automatically.<br>
<br>
Also with the manual cycle-breaking, Debian will have to trust that (a) I didn't backdoor the first binary-only upload *as well as* that (b) Rust upstream didn't backdoor their releases (that I used to bootstrap my upload). With a orig-dl source-only upload, Debian only has to trust (b) and not (a, b).<br></blockquote><div><br></div><div>Sure, and a cross-compile would obviously be better still (building only from existing "trusted" Debian packages on an existing arch).</div><div><br></div><div>I disagree with your conclusion, but I think that's only because I'm considering it more important to "do the normal thing" than you are.  You can see why in the general case it would be infeasible to bundle up every dependency required to break the circular build depdency in a pre-built "orig-dl" tarball.  If you want to get the buildds to build the intermediate rustc.deb (the "unclean" one in my steps above) by churning orig-dl-tar.gz then I have no technical objection and you should go for it.  It would be wonderful to see rustc.deb on more architectures :)</div><div><br></div><div> - Gus</div></div></div>