Comment 10 for bug 1957932

Revision history for this message
Simon Chopin (schopin) wrote : Re: [MIR] rustc, cargo

Built-Using is already used in all pure-Rust binaries, e.g. ripgrep. However, it only stores the version of rustc itself. The non-vendored libraries are currently recorded using the non-standard field 'X-Cargo-Built-Using'. Sadly, this doesn't apply to all packages that currently Build-Depend on rustc, only those that use the dh-cargo helper. src:0ad for instance doesn't seem to record anything for that, nor does src:cargo, ironically.

Furthermore, in the case of vendored dependencies, we've settled for storing the "Cargo.lock" file which is a manifest of all the dependencies of a given project with precise versioning. Currently for rustc we ship it in /usr/share/doc/rustc/Cargo.lock

Regarding version bumps, it is worth noting that they already happen in our other LTS versions. rustc 1.57 is indeed available in focal-updates and bionic-updates. AIUI it's because of Firefox regularly needing a newer version of rustc. Similarly, newer versions of LLVM are available on older releases because of kernel and mesa requirements.

However, the versioned source name is a good point. On one hand it would make sense because even though the rustc upstream tries their best not to break existing code, breakage does occur from time to time, so versioned rustc would make transitions easier. OTOH, rustc requires the N-1 version to build (or itself), which would mean that we would have the whole integer suite in the archive, which doesn't seem particularly appealing to me given their 6-week cadence. I'll put it on Foundation's agenda for the sprint next week.

I honestly cannot give you any expectations of how our handling of the toolchain for 24.04 would be, as it will be shaped by the requirements of the projects that will use it. I personally have some doubts that we'll see *production* Rust code in our kernels for 24.04. I also suspect that as the ecosystem matures we'll see less and less breaking changes in rustc, as the long trail of unmaintained crates in crates.io will calcify things a bit (they compile and run the tests for each crate there for each release).

Thanks for the heads-up on the crossbeam issue, I'll update the affected vendored version before uploading.