Subject: cargo-build-system hides the package dependency graph

From: Leo Famulari <[email-masked]>
Date: Fri, 3 Apr 2020 13:44:12 -0400

Some Guix commands like `guix graph` and `guix show` don't work as
expected for packages using the cargo-build-system.

The cargo-build-system uses only the source code of a package's
dependencies when building.

To achieve this, the build system does not refer to dependencies with
the usual 'inputs', 'native-inputs', and 'propagated-inputs', but
instead with the Scheme keywords #:cargo-inputs and
#:cargo-development-inputs. [0]

This means that it's not possible to work with the package dependency
graph like with other packages.

As a result, some Guix commands don't work as expected, such as `guix
graph` and `guix show`. I wonder if `guix refresh --update` works?

I'm not sure if this can be improved — there is a comment in ((guix
build-system cargo) expand-crate-sources) that explains why we did it
this way and acknowledges the problems.

[0] For example:
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/crates-io.scm?id=e7a353ed468a805af6ad6b06b0dc0909393ff8fa#n89