guix-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 1/7] build-system: Add cargo build system.


From: Ludovic Courtès
Subject: Re: [PATCH 1/7] build-system: Add cargo build system.
Date: Tue, 13 Dec 2016 18:15:51 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Hi David!

David Craven <address@hidden> skribis:

>> Given the work that has gone into these Rust patches, I think it would
>> be nice to apply them and possibly document any shortcoming or future
>> work items.
>
> I went over all your previous emails and fixed your previous comments.
> Those aren't part of the new patch series yet...
>
> In summary those changes are:
> * add (supported-systems '("x86_64-linux")
> * Improve rustc-bootstrap, cargo-bootstrap and rust-bootstrap synopsis
> and description
> * add crate updater to table in guix.texi
> * add Eric to the rust.scm file

OK.

> Some unanswered questions:
>
> guix size of rust-bootstrap shows a size of zero. Are propagated
> inputs not part of this measurement?

No they’re not; it’s only the things that show in in ‘guix gc -R
rust-bootstrap’.

> Now there are two different gcc:lib's in the dependency graph of
> rustc-bootstrap. Can I use the system gcc:lib? Does gcc "lib" need to
> be added to %final-inputs in commencement.scm?

Hmm why is there a second one?  ‘gnu-build-system’ already provides gcc
and gcc:lib as implicit inputs, so maybe it’s just a matter of removing
‘gcc’ from Rust’s ‘inputs’?

> To build rustc i686 and x86_64 with the same binary, rustc-bootstrap
> needs to find the 32bit glibc dynamic linker. How do I get a 32bit
> glibc for that?

When you do ‘guix build rust -s i686-linux’, you get 32-bit packages.
Is that enough or am I missing something?  :-)

> What needs to be done:
>
> * the updater patch needs to be looked at. it fixed the packages not
> updating, I need to find out why that was and/or if it still is the
> case.
>
> * Crate names need to be saved as a property and propagated to the
> build system when the crate name contains underscores.
>
> * Put crate source in OUT/share/rust-source/PACKAGE-VERSION
>
> * Cargo build system should not do anything if there isn't a
> Cargo.lock file except copy the source to out.
>
> * Finish the recursive importer. The recursive importer should use the
> Cargo.lock file to get the right package versions as
> rust-PACKAGENAME-VERSION. If a crate doesn't have a Cargo.lock only
> import the latest version non-recursively as rust-PACKAGENAME.
>
> * Get cargo to build
>
> * Make the updater update package versions recursively
>
> * Improve cargo bootstrapping story.

OK, thanks for the detailed update!

Ludo’.



reply via email to

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