From: Ionen Wolkens <ionen@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Cc: James Le Cuirot <chewi@gentoo.org>
Subject: Re: [gentoo-dev] [PATCH] cargo.eclass: Add cargo_target_dir helper function
Date: Sat, 15 Jun 2024 17:56:02 -0400 [thread overview]
Message-ID: <Zm4N8r9AlcNXNLqP@eversor> (raw)
In-Reply-To: <3596ff34-6a36-41e3-944d-ea11c1bfe737@gentoo.org>
[-- Attachment #1: Type: text/plain, Size: 1891 bytes --]
On Sat, Jun 15, 2024 at 08:14:34PM +0200, Florian Schmaus wrote:
> On 13/06/2024 17.03, James Le Cuirot wrote:
> > Several Cargo-based ebuilds cannot use cargo_src_install for various
> > reasons and manually install binaries from within the target directory
> > instead. It is common to see `target/$(usex debug debug release)`, but
> > this lacks the target ABI when cross-compiling, so provide a helper
> > function.
>
> Glad that someone is working on better cross-compilation support for
> rust. :)
>
> That said, many rust ebuilds generate shell completions by invoking the
> just compiled binary in src_install(). This does not work out of the box
> when cross-compiling.
>
> Is there anything we can or should do about it (besides binfmt_misc)?
> For example, asking the according projects to implement a mechanism to
> extract the completions files from the binary without running it, or
> have the build system generate the completion files as result of the build?
All I can think of without changing entirely how they're generated is:
1. (worst) either make a 2nd build using CBUILD (yeah no), or BDEPEND
on same-version self with a USE only when cross compiling
2. (lazy) skip completions w/ ewarn if tc-is-cross-compiler, just so
it at least won't break cross over completion files that the user
may not even care much about
3. generate them yourself with each releases and ship in a tarball,
works out for users but extra burden for maintainer over little
4. ask upstream to provide proper release tarballs if not already and
include pre-generated completions/docs/etc... so it's otherwise
only a problem with arbitrary git checkouts
(3+4 may possibly be more complicated if cargo features / USE change
cli options and thus completion files)
For one of my ebuilds I went with better-than-nothing #2.
--
ionen
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2024-06-15 21:56 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-13 15:03 [gentoo-dev] [PATCH] cargo.eclass: Add cargo_target_dir helper function James Le Cuirot
2024-06-13 21:32 ` Lucio Sauer
2024-06-14 13:54 ` James Le Cuirot
2024-06-15 20:02 ` Lucio Sauer
2024-06-15 13:59 ` [gentoo-dev] [PATCH v2] " James Le Cuirot
2024-06-15 18:14 ` [gentoo-dev] [PATCH] " Florian Schmaus
2024-06-15 21:56 ` Ionen Wolkens [this message]
2024-06-15 22:22 ` James Le Cuirot
2024-07-06 9:04 ` Florian Schmaus
2024-07-07 3:36 ` Eli Schwartz
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=Zm4N8r9AlcNXNLqP@eversor \
--to=ionen@gentoo.org \
--cc=chewi@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox