Hi Martin, > On Dec 2, 2019, at 3:10 PM, Martin Becze wrote: > > When you say source import of the transitive dependencies, do you mean > that all the rust libs should just be source only or do you mean the top > level package should have to declare all the transitive dependencies? All rust libs should be source only imports, but each package definition should only declare dependencies on the crates it consumes directly and guix should figure out the rest (in other words, I’d expect there to be a one-to-one mapping between a Cargo.toml and a package definition). For example, if crate foo depends on crate bar which depends on crate baz, I’d expect the definitions to look like: (define-public rust-foo (package (name “rust-foo") (source-input `((“bar” ,bar))))) (define-public rust-bar (package (name “rust-bar") (source-input `((“baz” ,baz))))) (define-public rust-baz (package (name “rust-baz"))) But while building foo (assuming it is some kind of application), guix would ensure that bar and baz are available in the build environment. IMO this direction would be the most maintainable in the long term. —Ivan