all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Tomas Volf <~@wolfsden.cz>
To: woshilapin <woshilapin@tuziwo.info>
Cc: help-guix@gnu.org
Subject: Re: How to debug a failed build of rust application under cargo-build-system?
Date: Thu, 15 Feb 2024 14:26:00 +0100	[thread overview]
Message-ID: <Zc4Q6H_w0O60-dbH@ws> (raw)
In-Reply-To: <CmxPvnRvnglex8DgsOUCEEOh36cnWvT_ZvuN19k19GWKmMBlcaG4BCCMlW0my73bAwovkMo-M2uueMc92uPHEhlzT65Jj7qznHVp7vAzAy0=@tuziwo.info>

[-- Attachment #1: Type: text/plain, Size: 3812 bytes --]

On 2024-02-15 13:06:23 +0000, woshilapin wrote:
> Hi,
>
> It is indeed a code error which looks weird. Are you sure the 2 compilations compile the same source code?

Well, technically I am not sure.  I ran the `guix import crate -r netavark' and
used the output from that.  My expectation was that it would walk the
dependencies, and produce the same dependency tree cargo would use.  Is that a
correct expectation?

> How do you invoke `cargo install`?

    cargo install netavark

Which seems to install 1.10.3 version.  That does match my package:

    (name "netavark")
    (version "1.10.3")
    (source
     (origin
       (method url-fetch)
       (uri (crate-uri "netavark" version))
       (file-name (string-append name "-" version ".tar.gz"))
       (sha256
        (base32 "1viyj9xqq9hkcsghrfx7wjmky3hkxfr96952f9favd4zg9ih64yw"))))
    (build-system cargo-build-system)

When I check the failing tonic crate, both (guix package and in output for the
cargo install above) are in 0.10.2 version.

> Because if you invoke `cargo install --path .`, then I'm pretty sure it's compiling whatever is on your machine at the current directory. However, any other invocation of `cargo install` might actually pull some source from `crates.io` (the package registry for `cargo`). For example, `cargo install cargo-nextest` will download.
> Same applies for `guix build` (I'm a guix very beginner so I might not be the best at this), I'm not sure `guix build` build the current directory. Doesn't it build the `package.scm` which itself describe where to pull the source code?
>
> So, trying a way to be sure that `cargo install` and `guix build` actually build the same source code might a first step. I hope this helps.
>
> Have a nice day.
> --
> woshilapin
>
> Le jeudi 15 février 2024 à 13:43, Tomas Volf <~@wolfsden.cz> a écrit :
>
> > Greetings,
> >
> > I am trying to package a rust application and the build fails. I am not sure
> > how to debug that. When I try to compile the application using `cargo install', it does pass and build just fine. However, when I try to build the application (imported using the cargo importer) using` guix build', I get this error:
> >
> > Compiling tonic v0.10.2
> > error[E0277]: the `?` operator can only be used in an async block that returns `Result` or `Option` (or another type that implements `FromResidual`)
> > --> /tmp/guix-build-netavark-1.10.3.drv-0/netavark-1.10.3/guix-vendor/rust-tonic-0.10.2.tar.gz/src/transport/server/incoming.rs:32:45
> >
> > |
> > 28 | / async_stream::try_stream! {
> > 29 | | tokio::pin!(incoming);
> > 30 | |
> > 31 | | while let Some(item) = incoming.next().await {
> > 32 | | yield item.map(ServerIo::new_io)?
> > | | ^ cannot use the `?` operator in an async block that returns `()`
> > 33 | | }
> > 34 | | }
> > | |_____- this function should return `Result` or `Option` to accept `?`
> > |
> > = help: the trait `FromResidual<std::result::Result<Infallible, IE>>` is not implemented for `()`
> >
> >
> > For more information about this error, try `rustc --explain E0277`.
> > error: could not compile `tonic` (lib) due to previous error
> >
> > I am not know rust, but this looks like a code error? If that is the case, I do
> > not understand why `cargo install' works, since it should be using the same
> > code.
> >
> > Could someone nudge me in the right direction regarding how to debug this issue?
> > I am not really sure where to start.
> >
> > Thank you and have a nice day,
> > Tomas Volf
> >
> > --
> > There are only two hard things in Computer Science:
> > cache invalidation, naming things and off-by-one errors.

--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2024-02-15 13:26 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-15 12:43 How to debug a failed build of rust application under cargo-build-system? Tomas Volf
2024-02-15 13:06 ` woshilapin
2024-02-15 13:26   ` Tomas Volf [this message]
2024-02-15 14:42     ` Nils Landt
2024-02-15 16:23       ` Tomas Volf
2024-02-15 18:07         ` Nils Landt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Zc4Q6H_w0O60-dbH@ws \
    --to=~@wolfsden.cz \
    --cc=help-guix@gnu.org \
    --cc=woshilapin@tuziwo.info \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.