guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 08/12] build-system: Add cargo build system.


From: David Craven
Subject: Re: [PATCH 08/12] build-system: Add cargo build system.
Date: Mon, 26 Sep 2016 20:01:07 +0200

>> +(define* (configure #:rest empty)
>> +  "Replace Cargo.toml [dependencies] section with guix inputs."
>> +  ;;TODO
>
> So what would this do?  Do we end up using bundled dependencies if we
> don’t do that?

If we don't do that cargo tries to download them from crates.io, and
since it's running in a container, would fail.

>> +(define* (build #:rest empty)
>> +  "Build a given Cargo package."
>> +  (zero? (system* "cargo" "build" "--release")))
>
> It may be useful to make "--release" configurable, like the #:build-type
> of ‘cmake-build-system’.

> Why do we need to install the source code?
>
> If it’s really needed for the functioning of the package, I’d suggest
> moving it to OUT/share/rust-source/PACKAGE-VERSION or something like
> this, no?

Rust doesn't have a fixed ABI yet, so cargo builds everything from
source. There is precedent in other distros (I think debian) and
languages (go).

>> +    (install-file "Cargo.toml" rsrc)
>> +    ;; Will fail if crate doesn't contain an executable
>> +    (system* "cargo" "install" "--root" bin)
>
> I suppose many crates provides a library and no executable, so it’d be
> nice to find what needs to be done here.  Thoughts?

if we replace all dependencies with local ones, this isn't an issue.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]