tl;dr- trying to build Firefox 57 is a nightmare.
It needs Rust. OK fine, Guix has that. Oh, but Rust 1.16 is too old. Okay, I'll upgrade to 1.21. Oh, I see why the Rust in Guix is out-of-date: it simply refuses to build without network access because to build rustc you need cargo, Rust's package manager. Requiring network access to build software is bad practice because it's a source of nondeterminism. Requiring a special package manager to build a *COMPILER* is insane. WTF Mozilla!?
No self respecting package manager allows network access during builds. I'm going to punt on this project but if we ever want to have a new version of Rust in Guix we'll have to trick Cargo into not downloading anything.
I thought I could trick Cargo, because it turns out we already trick Cargo... in order to build Cargo. That's right, you need Cargo to build Cargo! Unfortunately it is now complaining about checksums of vendored libraries being wrong so I'm just in a sea of despair at this point.
@dthompson yea, it's frustrating 😕
The cargo devs are aware of the problems this can cause, especially when integrating with systems package managers, they have a call for dev help here: https://internals.rust-lang.org/t/call-for-help-cargo-airplane-mode/6134/13
@dthompson we live in an exciting time for language enthusiasts and a terrifying time for package manager enthusiasts, and this is weirdly interrelated
(But people! It doesn't have to be! Having a new package manager for your language is not actually a selling point!)