From: Paolo Bonzini <pbonzini@redhat.com>
To: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Cc: qemu-devel <qemu-devel@nongnu.org>,
Emmanouil Pitsidianakis <manos.pitsidianakis@linaro.org>,
Zhao Liu <zhao1.liu@intel.com>,
Junjie Mao <junjie.mao@hotmail.com>,
"P. Berrange, Daniel" <berrange@redhat.com>
Subject: Re: [PATCH 22/23] dockerfiles: install bindgen from cargo on Ubuntu 22.04
Date: Fri, 25 Oct 2024 21:35:46 +0200 [thread overview]
Message-ID: <CABgObfbhJLeAon9rfpSpFG4cwDvCEMnK+1tkmOR5-+mkSdGOUQ@mail.gmail.com> (raw)
In-Reply-To: <580f10bc-4d37-4ece-b9d8-496ba66b7966@linaro.org>
[-- Attachment #1: Type: text/plain, Size: 3921 bytes --]
Il ven 25 ott 2024, 20:51 Pierrick Bouvier <pierrick.bouvier@linaro.org> ha
scritto:
> Hi Paolo,
>
> On 10/25/24 09:02, Paolo Bonzini wrote:
> > Because Ubuntu 22.04 has a very old version of bindgen, that
> > does not have the important option --allowlist-file, it will
> > not be able to use --enable-rust out of the box. Instead,
> > install the latest version of bindgen-cli via "cargo install"
> > in the container, following QEMU's own documentation.
> >
> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> > ---
> > tests/docker/dockerfiles/ubuntu2204.docker | 5 +++++
> > tests/lcitool/mappings.yml | 4 ++++
> > tests/lcitool/refresh | 11 ++++++++++-
> > 3 files changed, 19 insertions(+), 1 deletion(-)
> >
> > diff --git a/tests/docker/dockerfiles/ubuntu2204.docker
> b/tests/docker/dockerfiles/ubuntu2204.docker
> > index ce3aa39d4f3..245ac879622 100644
> > --- a/tests/docker/dockerfiles/ubuntu2204.docker
> > +++ b/tests/docker/dockerfiles/ubuntu2204.docker
> > @@ -149,6 +149,11 @@ ENV LANG "en_US.UTF-8"
> > ENV MAKE "/usr/bin/make"
> > ENV NINJA "/usr/bin/ninja"
> > ENV PYTHON "/usr/bin/python3"
> > +ENV CARGO_HOME=/usr/local/cargo
> > +ENV PATH=$CARGO_HOME/bin:$PATH
> > +RUN DEBIAN_FRONTEND=noninteractive eatmydata \
> > + apt install -y --no-install-recommends cargo
> > +RUN cargo install bindgen-cli
> > # As a final step configure the user (if env is defined)
> > ARG USER
> > ARG UID
> > diff --git a/tests/lcitool/mappings.yml b/tests/lcitool/mappings.yml
> > index 9c5ac87c1c2..c90b23a00f1 100644
> > --- a/tests/lcitool/mappings.yml
> > +++ b/tests/lcitool/mappings.yml
> > @@ -1,4 +1,8 @@
> > mappings:
> > + # Too old on Ubuntu 22.04; we install it from cargo instead
> > + bindgen:
> > + Ubuntu2204:
> > +
> > flake8:
> > OpenSUSELeap15:
> >
> > diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
> > index 0f16f4d525c..a46cbbdca41 100755
> > --- a/tests/lcitool/refresh
> > +++ b/tests/lcitool/refresh
> > @@ -137,6 +137,14 @@ fedora_rustup_nightly_extras = [
> > 'RUN /usr/local/cargo/bin/rustup run nightly cargo install
> bindgen-cli\n',
> > ]
> >
> > +ubuntu2204_bindgen_extras = [
> > + "ENV CARGO_HOME=/usr/local/cargo\n",
> > + 'ENV PATH=$CARGO_HOME/bin:$PATH\n',
> > + "RUN DEBIAN_FRONTEND=noninteractive eatmydata \\\n",
> > + " apt install -y --no-install-recommends cargo\n",
> > + 'RUN cargo install bindgen-cli\n',
> > +]
> > +
> > def cross_build(prefix, targets):
> > conf = "ENV QEMU_CONFIGURE_OPTS --cross-prefix=%s\n" % (prefix)
> > targets = "ENV DEF_TARGET_LIST %s\n" % (targets)
> > @@ -157,7 +165,8 @@ try:
> > trailer="".join(debian12_extras))
> > generate_dockerfile("fedora", "fedora-40")
> > generate_dockerfile("opensuse-leap", "opensuse-leap-15")
> > - generate_dockerfile("ubuntu2204", "ubuntu-2204")
> > + generate_dockerfile("ubuntu2204", "ubuntu-2204",
> > + trailer="".join(ubuntu2204_bindgen_extras))
> >
> > #
> > # Non-fatal Rust-enabled build
>
> Should we install the same version as the minimal one we expect (0.60,
> in debian 12)? All the rest of series is focused on having fixed minimal
> version, and
this patch seems to escape this rule.
>
But in the end the operation of bindgen is quite deterministic, so if the
coverage is improved we can indeed install 0.60.x. For example, if we think
that user on Debian 12 might use distro bindgen together with a recent
rustc (in their case, rustup-installed), then installing bindgen 0.60.x on
Ubuntu would provide a similar effect.
On the other hand I expect that users will just do "cargo install
bindgen-cli", and Ubuntu is a pretty common distro, so that's what I went
for here.
Paolo
Note: we can still install it using cargo, but just having a fixed
> version would be better.
>
>
[-- Attachment #2: Type: text/html, Size: 5682 bytes --]
next prev parent reply other threads:[~2024-10-25 19:36 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-25 16:01 [PATCH v3 00/23] rust: fix CI + allow older versions of rustc and bindgen Paolo Bonzini
2024-10-25 16:01 ` [PATCH 01/23] rust: add definitions for vmstate Paolo Bonzini
2024-10-25 16:01 ` [PATCH 02/23] rust/pl011: fix default value for migrate-clock Paolo Bonzini
2024-10-25 16:01 ` [PATCH 03/23] rust/pl011: add support for migration Paolo Bonzini
2024-10-25 16:01 ` [PATCH 04/23] rust/pl011: move CLK_NAME static to function scope Paolo Bonzini
2024-10-25 16:01 ` [PATCH 05/23] rust/pl011: add TYPE_PL011_LUMINARY device Paolo Bonzini
2024-10-31 14:58 ` Zhao Liu
2024-10-25 16:01 ` [PATCH 06/23] rust/pl011: remove commented out C code Paolo Bonzini
2024-10-25 16:01 ` [PATCH 07/23] rust/pl011: Use correct masks for IBRD and FBRD Paolo Bonzini
2024-10-25 16:01 ` [PATCH 08/23] rust: patch bilge-impl to allow compilation with 1.63.0 Paolo Bonzini
2024-10-25 16:01 ` [PATCH 09/23] rust: fix cfgs of proc-macro2 for 1.63.0 Paolo Bonzini
2024-10-25 16:01 ` [PATCH 10/23] rust: use std::os::raw instead of core::ffi Paolo Bonzini
2024-10-25 16:01 ` [PATCH 11/23] rust: introduce a c_str macro Paolo Bonzini
2024-10-31 10:39 ` Zhao Liu
2024-10-25 16:01 ` [PATCH 12/23] rust: silence unknown warnings for the sake of old compilers Paolo Bonzini
2024-10-25 16:01 ` [PATCH 13/23] rust: synchronize dependencies between subprojects and Cargo.lock Paolo Bonzini
2024-10-31 11:31 ` Zhao Liu
2024-11-01 10:14 ` Junjie Mao
2024-11-01 15:30 ` Paolo Bonzini
2024-11-02 2:13 ` Junjie Mao
2024-10-25 16:01 ` [PATCH 14/23] rust: create a cargo workspace Paolo Bonzini
2024-10-31 13:46 ` Zhao Liu
2024-11-01 10:21 ` Junjie Mao
2024-10-25 16:02 ` [PATCH 15/23] rust: introduce alternative implementation of offset_of! Paolo Bonzini
2024-11-03 9:54 ` Junjie Mao
2024-11-04 16:02 ` Paolo Bonzini
2024-11-04 16:03 ` Paolo Bonzini
2024-11-04 16:03 ` Paolo Bonzini
2024-11-05 2:07 ` Junjie Mao
2024-10-25 16:02 ` [PATCH 16/23] rust: do not use MaybeUninit::zeroed() Paolo Bonzini
2024-10-25 16:02 ` [PATCH 17/23] rust: clean up detection of the language Paolo Bonzini
2024-10-25 16:02 ` [PATCH 18/23] rust: allow version 1.63.0 of rustc Paolo Bonzini
2024-10-25 16:02 ` [PATCH 19/23] rust: do not use --generate-cstr Paolo Bonzini
2024-10-25 20:03 ` Michael Tokarev
2024-10-25 20:06 ` Pierrick Bouvier
2024-10-25 20:10 ` Michael Tokarev
2024-10-25 20:12 ` Pierrick Bouvier
2024-10-25 20:11 ` Paolo Bonzini
2024-10-25 16:02 ` [PATCH 20/23] rust: allow older version of bindgen Paolo Bonzini
2024-10-25 16:02 ` [PATCH 21/23] rust: make rustfmt optional Paolo Bonzini
2024-10-25 16:02 ` [PATCH 22/23] dockerfiles: install bindgen from cargo on Ubuntu 22.04 Paolo Bonzini
2024-10-25 18:51 ` Pierrick Bouvier
2024-10-25 19:35 ` Paolo Bonzini [this message]
2024-10-25 19:47 ` Pierrick Bouvier
2024-10-25 20:08 ` Paolo Bonzini
2024-10-25 20:14 ` Pierrick Bouvier
2024-10-25 20:21 ` Paolo Bonzini
2024-10-25 20:08 ` Pierrick Bouvier
2024-10-25 16:02 ` [PATCH 23/23] ci: enable rust in the Debian and Ubuntu system build job Paolo Bonzini
2024-10-25 18:55 ` Pierrick Bouvier
2024-10-25 18:58 ` Pierrick Bouvier
2024-10-25 19:27 ` Paolo Bonzini
2024-10-25 19:33 ` Pierrick Bouvier
2024-10-25 20:08 ` Pierrick Bouvier
2024-10-25 16:23 ` [PATCH v3 00/23] rust: fix CI + allow older versions of rustc and bindgen Manos Pitsidianakis
2024-10-31 16:28 ` Paolo Bonzini
2024-10-27 7:01 ` Michael Tokarev
2024-10-27 8:00 ` Paolo Bonzini
2024-10-27 9:38 ` Michael Tokarev
2024-10-27 9:42 ` Michael Tokarev
2024-10-27 9:57 ` Michael Tokarev
2024-10-27 12:39 ` Paolo Bonzini
2024-10-28 9:21 ` Daniel P. Berrangé
2024-10-28 12:26 ` Alex Bennée
2024-10-28 12:41 ` Paolo Bonzini
2024-10-30 16:52 ` Paolo Bonzini
2024-10-31 16:41 ` Zhao Liu
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=CABgObfbhJLeAon9rfpSpFG4cwDvCEMnK+1tkmOR5-+mkSdGOUQ@mail.gmail.com \
--to=pbonzini@redhat.com \
--cc=berrange@redhat.com \
--cc=junjie.mao@hotmail.com \
--cc=manos.pitsidianakis@linaro.org \
--cc=pierrick.bouvier@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=zhao1.liu@intel.com \
/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;
as well as URLs for NNTP newsgroup(s).