Hacker News new | past | comments | ask | show | jobs | submit login

Does this imply anything regarding rust compiler package for distros? To support the Firefox build, all distros will have to have good rust compiler packages now, right? (I'm sure the status is already not bad, I haven't checked recently..)

If it becomes something dependable, infrastructure-wise, like Java, this might mark the beginning of a more serious uptake.




We've been doing a lot of work in this area, and some distros already have packages. Debian testing, for example.

Currently, I believe that this functionality is optional, so distros aren't required to actually ship it just yet.


Now that Rust can properly bootstrap from previous versions I can see most distros getting it packaged soon(TM), unfortunately the Fedora 25 change window ends today and since rust/cargo will require new packaging guidelines unless someone really steps up to the plate (I don't have time today) it won't make it in until F26.


SBT (scala) bootstraps itself in the same way. I think we're going to be seeing more of that going forward.

For the produced binary packages (rpms, debs) it won't matter that much; although it will reduce build dependencies for source packages and give more consistent builds, even if your distribution comes with an _ancient_ version.


That's not a complete comparison though -- sbt only downloads the platform-independent jars and minuscule launcher scripts. It's still on the user to install a JRE globally.

An analogue for rust would be something that detects the platform at runtime and then downloads a statically linked (?) binary that works on that platform. It can also exploit the ivy cache as the Scala compiler is just a library as far as SBT is concerned.

Isn't that a deal breaker? I would assume that downloading and checking in the binary for a whole compiler for 3+ platforms is untenable.


Distros are okay with a single starting binary for compilers. Gcc does this, for example. Rust would publish a single bootstrap binary, and distros would build the next compiler with that (and publish), and build the next one with the one that they just built, and so on. Multiple platforms would just involve cross compiling the first time.


The problem, historically, with Rust is that each release was built with the latest nightly, so you had to bootstrap each new version. Now they've changed to using the previous compiler release to bootstrap, so you can bring a binary in for the first build of a package then immediately rebuild with your bootstrapped binary and continue on from there for eternity.


It matters a lot for many distributions, as it means we can strip a huge binary blob from the source packages. There's nothing PREVENTING Fedora from building this way, but it's a lot easier to get the package through review if it can be bootstrapped with a binary once and then previous packages can build it.


Ah, bummer. How long between Fedora releases?


6 months, all that needs to get in is a proposal (first alpha is a month away so there's plenty of time to flesh it out). We can still package rustc without needing a change, but cargo would be delayed if there isn't a proposal on the wiki before the end of day.


There is already a bug tracking this effort for Fedora https://bugzilla.redhat.com/show_bug.cgi?id=915043

Also a few unofficial repos for rust/cargo on Copr https://copr.fedorainfracloud.org/coprs/fulltext/?fulltext=r...


Yeah, there was a bugzilla for the packaging, 'changes' are done on the wiki and are for things more than 'just' packaging up software (where guidelines are needed, in this case).

Someone got a draft up last night [0], and discussion is happening on -devel. If things go well this may make it in F25.

[0]: https://fedoraproject.org/wiki/Changes/RustCompiler


Will Fedora ever rename/relogo Copr? Surely it was a joke to use the Greek word for faeces (κόπρο) and a logo of a side-on view of a sphincter pushing out a fresh coil.


You certainly don't know Greek :)

Copr stands for "Cool Other Package Repositories" and is pronounced copper


Firefox builds are also reproducible, so does this mean that stable Rust will generally be reproducible as well?


We put in a lot of work for reproducible builds, I'm not aware of anything obvious that would make it not so right now. If we're not, please file bugs! We've fixed them in the past.


Great, because rust is not yet supported on all of the platforms that FireFox itself runs on (nevermind packaged), and that would put many in an unfortunate position.


Which ones are you concerned about? I personally haven't paid attention to the exact diff here.

In the past, we've explicitly added platform support for this reason, Windows XP comes to mind.


Well, LLVM doesn't work well on SPARC yet, so anyone on a SPARC-based system would be affected (yes, I know the number of people running FireFox on SPARC is relatively small, although it certainly numbers in the thousands).

And until recently, as another example, rust didn't quite work yet on Solaris (amd64); thankfully, a community member stepped up and has been actively working on that port.


Cool thanks! As always, so much work to do...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: