rust-cargo: Update to 0.60.0 to support Edition2021 projects

  • Done
  • quality assurance status badge
Details
5 participants
  • Maxim Cournoyer
  • Maxime Devos
  • Tobias Geerinckx-Rice
  • Mekeor Melire
  • Paul Alesius
Owner
unassigned
Submitted by
Paul Alesius
Severity
normal
P
P
Paul Alesius wrote on 21 Mar 2022 18:46
(address . guix-patches@gnu.org)
CAL8jUGV9EwAm9KLKFcgjHiPV_GrQSZV4ec6Epcb0otXBNaD17Q@mail.gmail.com
The current rust-cargo version is 0.53.0, this supports rust
edition2018 projects.

To install the latest cargo from crates.io using the existing version
(cargo install cargo), it will fail because the latest version is an
"edition2021" rust-cargo project.

-- log
Caused by:
failed to parse manifest at `/xyz/cargo-0.59.0/Cargo.toml`
Caused by:
feature `edition2021` is required
--

This patch updates rust-cargo and its dependencies to support the the
latest rust edition2021, and edition2021 cargo projects.

With regards,
- Paul
M
M
Maxime Devos wrote on 21 Mar 2022 19:46
7645a04d4bbd9261ef32be711a9302085481d44c.camel@telenet.be
Paul Alesius schreef op ma 21-03-2022 om 18:46 [+0100]:
Toggle quote (4 lines)
> +(define-public rust-rustfix-0.6
> +  (package
> +    (name "rust-rustfix")

rustfix is already packaged in Guix.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYjjH6RccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7gvAAP91OiD51I/Nz0fT9ncu/9wn2FnD
SgweZAAqDwCGx3I4SgEAwJ1c97DcO1lBTHWuoRp1EY5ehHJS1H9y+wjTxJ5JxgY=
=6Lll
-----END PGP SIGNATURE-----


P
P
Paul Alesius wrote on 21 Mar 2022 21:59
CAL8jUGUTgBKbBj-pe1ftJPBvJq_UnR-6VVTSyBNvbgKZ1xG-7g@mail.gmail.com
Updated patch.

On Mon, 21 Mar 2022 at 19:46, Maxime Devos <maximedevos@telenet.be> wrote:
Toggle quote (10 lines)
>
> Paul Alesius schreef op ma 21-03-2022 om 18:46 [+0100]:
> > +(define-public rust-rustfix-0.6
> > + (package
> > + (name "rust-rustfix")
>
> rustfix is already packaged in Guix.
>
> Greetings,
> Maxime.
M
M
Mekeor Melire wrote on 30 Jun 2022 00:57
bump: make rust-cargo understand rust-edition2021 which rustc already does
(address . 54509@debbugs.gnu.org)
87bkub5b4l.fsf@posteo.de
the rust-compiler which is packaged for guix supports edition2021. but
the cargo version packaged for guix does not. that's a pity! because it
makes the cargo version packaged for guix pretty unusable as most
projects already use edition2021. can we please merge this patch so that
cargo is usable for recent rust-projects?
M
M
Maxime Devos wrote on 30 Jun 2022 10:10
eb52fedfbd9ce41ba736c348030092f4335d70f0.camel@telenet.be
Mekeor Melire schreef op wo 29-06-2022 om 22:57 [+0000]:
Toggle quote (3 lines)
> the rust-compiler which is packaged for guix supports edition2021
> but the cargo version packaged for guix does not

Pretty sure that it does, IIRC under antioxidant-build-system I've seen
some things being compiled with the 2021 edition of rust, presumably
they also compiled under cargo-build-system.

Also, rust-cargo does not have the cargo binary (but a cargo library!),
you may be looking for the 'cargo' output of the 'rust' package
instead.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYr1aXRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7sKUAQCZMp8iec0bJj6cdHj5UbrTDjrm
YR1gbNJekNUzBDkwnQEAp9eqEQPu2HXATw2/nH+SMQ+3XLqw8JOwQOXqM9DKOwA=
=oZmp
-----END PGP SIGNATURE-----


M
M
Mekeor Melire wrote on 1 Jul 2022 23:48
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 54509@debbugs.gnu.org)
87sfnk4e3j.fsf@posteo.de
2022-06-30 / 10:10 / maximedevos@telenet.be:

Toggle quote (9 lines)
> Mekeor Melire schreef op wo 29-06-2022 om 22:57 [+0000]:

> > the rust-compiler which is packaged for guix supports edition2021
> > but the cargo version packaged for guix does not
>
> Pretty sure that it does, IIRC under antioxidant-build-system I've seen
> some things being compiled with the 2021 edition of rust, presumably
> they also compiled under cargo-build-system.

i tested this again. i'll describe the issue with some instructions:

create a cargo project:

$ cargo new foo
$ cd foo

use edition 2021 instead of 2018:

$ sed -i 's/2018/2021/' Cargo.toml

attempt to build and run. you'll observe an error:

$ cargo run

> error: failed to parse manifest at `/home/user/foo/Cargo.toml`
> Caused by:
> feature `edition2021` is required
> consider adding `cargo-features = ["edition2021"]` to the manifest

specify the 2021-edition as a cargo-feature, as suggested by cargo.
and try building and running again. it'll work fine:

$ (echo 'cargo-features = ["edition2021"]' && cat Cargo.toml) | \
sponge Cargo.toml
$ cargo run

> [...]
> Hello world!

but now, let's add a package as dependency - a package which uses
edition2021. and then, try to build and run:

$ echo 'axum = "0.5.4"' >> Cargo.toml
$ cargo run

> error: failed to download `axum-core v0.2.6`
> Caused by:
> unable to get packages from source
> Caused by:
> failed to parse manifest at
> `/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/axum-core-0.2.6/Cargo.toml`
> Caused by:
> feature `edition2021` is required
> consider adding `cargo-features = ["edition2021"]` to the manifest

TLDR: you can't build projects which depend on packages which depend on
edition2021.

Toggle quote (6 lines)
> Also, rust-cargo does not have the cargo binary (but a cargo library!),
> you may be looking for the 'cargo' output of the 'rust' package
> instead.
>
> Greetings,
> Maxime.
T
T
Tobias Geerinckx-Rice wrote on 2 Jul 2022 13:27
Re: [bug#54509] bump: make rust-cargo underst and rust-edition2021 which rustc already does
(address . 54509@debbugs.gnu.org)
2CEC1F61-FC4D-4E59-BFCF-6698380038A6@tobias.gr
Hi,

λ cargo new foo
Created binary (application) `foo` package
λ cd foo
λ cargo run
λ sed -i 's/2018/2021/' Cargo.toml
λ cargo run
Compiling foo v0.1.0 (/home/nckx/c/foo)
Finished dev [unoptimized + debuginfo] target(s) in 1.11s
Running `target/debug/foo`
Hello, world!
λ echo 'axum = "0.5.4"' >> Cargo.toml
λ cargo run
[...]
Downloaded httpdate v1.0.2
Compiling foo v0.1.0 (/home/nckx/c/foo)
Finished dev [unoptimized + debuginfo] target(s) in 54.46s
Running `target/debug/foo`
Hello, world!

Did you read the entirety of Maxime's reply? How are you controlling your environment?

Kind regards,

T G-R

Sent on the go. Excuse or enjoy my brevity.
T
T
Tobias Geerinckx-Rice wrote on 2 Jul 2022 13:35
(address . 54509@debbugs.gnu.org)
80250AB2-5494-44CE-B234-943A314AE963@tobias.gr
Could you be using a recent rust with an older rust:cargo installed in an 'underlying' profile (e.g., your system profile), for example?

Kind regards,

T G-R

Sent on the go. Excuse or enjoy my brevity.
M
M
Mekeor Melire wrote on 6 Jul 2022 16:06
Re: [bug#54509] bump: make rust-cargo understand rust-edition2021 which rustc already does
(name . Tobias Geerinckx-Rice)(address . me@tobias.gr)
87edyybaaj.fsf@posteo.de
thank you both. and sorry for falsly bumping the ticket!

i think i was missing the rust:cargo package/output. i solved my issue
with the following steps, but i'm not sure which steps were essential:

$ rm -rf ~/.cargo
$ guix package -r rust rust-cargo
$ unset RUSTC_BOOTSTRAP
$ guix package -i rust:out rust:cargo

kind regards
mekeor



2022-07-02 / 11:35 / me@tobias.gr:

Toggle quote (5 lines)
> Could you be using a recent rust with an older rust:cargo installed in
> an 'underlying' profile (e.g., your system profile), for example?
>
> Kind regards,
> T G-R
M
M
Maxim Cournoyer wrote on 9 Feb 2023 14:18
Re: bug#54509: rust-cargo: Update to 0.60.0 to support Edition2021 projects
(name . Paul Alesius)(address . paul@unnservice.com)
87v8kbgeo3.fsf_-_@gmail.com
Hello,

I've split this in one commit per package where feasible, and updated
rust-cargo-c to 0.9.8+cargo-0.60.

Closing!

--
Thanks,
Maxim
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 54509@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 54509
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch