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

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




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

Search: