From: Peter Korsgaard <peter@korsgaard.com>
To: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Simon Richter <simon.richter@ptwdosimetry.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH 2/2] support/download: fix the cargo post-process in face of failed vendoring
Date: Sun, 12 Feb 2023 09:45:04 +0100 [thread overview]
Message-ID: <87sffbb7cf.fsf@dell.be.48ers.dk> (raw)
In-Reply-To: <20230210223143.1060114-2-yann.morin.1998@free.fr> (Yann E. MORIN's message of "Fri, 10 Feb 2023 23:31:43 +0100")
>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:
> In commit 04154a651729 (support/download/cargo-post-process: cargo
> output for vendor config), we switched away from our hand-crafted
> cargo.toml mangling, to use cargo itself to update that file.
> In doing so, we enabled the shell pipefail option, so that we could
> catch cargo failures, while redirecting its output through tee to the
> cargo.toml.
> However, pipefail is overzealous, and will hit us even for pipes we do
> not want to globally fail, like the one that actually checks whether an
> archive is already vendored or not:
> if tar tf "${output}" | grep -q "^[^/]*/VENDOR" ; then
> ...
> with pipefail, the above may always fail:
> - if the tarball is already vendored, grep will exit on the first
> match because of -q (it only needs a single match to decide that its
> return code will be zero), so the | will get closed, and tar may
> get -EPIPE before it had a chance to finish listing the archive, and
> thus would terminate in error;
> - if the tarball is not vendored, grep will exit in error.
> It turns out that the tee was only added so that we could see the
> messages emitted by cargo, and still fill the cargo.tom with the output
> of cargo.
> But that's a bit overkill: the cargo messages are going to stderr, and
> the blurb to add to cargo.toml to stdout, so we just need to redirect
> stdout.
> Yes, we do not see what cargo added to cargo.toml, but that is not so
> interesting.
> Still, cargo ends its messages with a suggestion for the user to modify
> cargo.toml, with:
> To use vendored sources, add this to your .cargo/config.toml for this project:
> But since we've already redirected that to cargo.toml, there is nothing
> for the user to edit, so the above can get confusing. Emit a little
> blurb that states that everything is under control.
> And then we can drop pipefail.
> Note: the go-post-process initially had pipefail too, but it was dropped
> in bfd1a31d0e59 (support/download/go-post-process: drop -o pipefail) as
> it was causing spurrious breakage when extracting the archive before
> vendoring, so it is only reasonable that we also remove it from the
> cargo-post-process.
> Reported-by: Peter Korsgaard <peter@korsgaard.com>
> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> Cc: Simon Richter <simon.richter@ptwdosimetry.com>
Committed, thanks.
--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2023-02-12 8:45 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-10 22:31 [Buildroot] [PATCH 1/2] support/download: catch post-process errors Yann E. MORIN
2023-02-10 22:31 ` [Buildroot] [PATCH 2/2] support/download: fix the cargo post-process in face of failed vendoring Yann E. MORIN
2023-02-12 8:45 ` Peter Korsgaard [this message]
2023-02-12 8:39 ` [Buildroot] [PATCH 1/2] support/download: catch post-process errors Peter Korsgaard
2023-02-28 21:13 ` Peter Korsgaard
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=87sffbb7cf.fsf@dell.be.48ers.dk \
--to=peter@korsgaard.com \
--cc=buildroot@buildroot.org \
--cc=simon.richter@ptwdosimetry.com \
--cc=thomas.petazzoni@bootlin.com \
--cc=yann.morin.1998@free.fr \
/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.
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.