6 ms·
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 n
by radarsat1 10y ago
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.
- steveklabnik 10y agoWe'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.
- snuxoll 10y agoNow 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.
- steveklabnik 10y agoAh, bummer. How long between Fedora releases?
- snuxoll 10y ago6 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.
- comzeradd 10y agoThere is already a bug tracking this effort for Fedora https://bugzilla.redhat.com/show_bug.cgi?id=915043 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=rust https://copr.fedorainfracloud.org/coprs/fulltext/?fulltext=r...
- fnord123 10y agoWill 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.
- comzeradd 10y agoYou certainly don't know Greek :) Copr stands for "Cool Other Package Repositories" and is pronounced copper
- snuxoll 10y agoYeah, 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 https://fedoraproject.org/wiki/Changes/RustCompiler
- deleted 10y ago[deleted]
- djsumdog 10y agoSBT (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.
- snuxoll 10y agoIt 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.
- avita1 10y agoThat'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.
- Manishearth 10y agoDistros 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.
- snuxoll 10y agoThe 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.
- binarycrusader 10y agoGreat, 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.
- steveklabnik 10y agoWhich 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.
- binarycrusader 10y agoWell, 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.
- steveklabnik 10y agoCool thanks! As always, so much work to do...
- conradev 10y agoFirefox builds are also reproducible, so does this mean that stable Rust will generally be reproducible as well?
- steveklabnik 10y agoWe 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.