The rust integrations within Guix are a bit incomplete at the moment, but I’ve been
making some efforts to get things going. Right now it is possible to build individual
crates but with a *ton* of manual intervention in the package definitions. I’m working
on another change that should make it possible to start packaging rust based
packages/applications into Guix, hoping to share something next week.
If cargo is not packaged are people who are using rust with Guix System
using rustc and manually managing their dependencies?
Cargo is packaged in Guix today, however, it is exposed as an output of the rust
This confused me a bit the first time I installed rust on Guix as well. You’ll need
to run `guix package -i rust:cargo` to make it available. Perhaps the Guix search
needs updated to also search for matching package outputs…
As for extra tools like rls, rustfmt, and clippy: these are usually distributed with
the compiler source tarball. Currently they are not being build/packaged as
outputs because no one has done the work to expose them as such.
If you’re interested in using them, I encourage you to try exposing them in the
rust package definitions! If you need any help, feel free to reach out!
Are there any special considerations for Guix packages that provide
programs like cargo and rustup that are also package managers?
How does Guix deal with something like rust nightly releases if at all?
Guix does not package nightly rust, and I don’t anticipate it ever will. Getting
the rust compiler built and packaged into rust takes a little bit of effort,
and it would be impossible to keep up with the nightlies by hand.
Rustup seems to be the right way to make alternative rust toolchains available
and maintained outside of the Guix store. The last time I tried to install rustup
via the conventional installer, it failed to run on my machine outright, probably
because all necessary artifacts are in the store and not in the usual Linux distro
Once the Guix cargo build system is flushed out a bit more, I anticipate it should
be possible to define and build rustup as a Guix package.