From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org, Peter Maydell <peter.maydell@linaro.org>
Subject: Re: [PATCH] rust: suggest passing --locked to "cargo install"
Date: Wed, 18 Mar 2026 08:54:28 +0000 [thread overview]
Message-ID: <abpnzhK1pfTst2se@redhat.com> (raw)
In-Reply-To: <20260318082113.1127992-1-pbonzini@redhat.com>
On Wed, Mar 18, 2026 at 09:21:13AM +0100, Paolo Bonzini wrote:
> Without the option, cargo will try using the latest version of the
> dependencies of bindgen-cli. While it will obviously respect the
> constraints in Cargo.toml, old versions of Cargo do not have
> version-constrained resolution and will choke on dependencies
> that need Rust 2024.
Ah ha, the "--do-what-I-thought-should-be-the-default"
option :-)
>
> Cc: Daniel P. Berrangé <berrange@redhat.com>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> docs/about/build-platforms.rst | 2 +-
> meson.build | 2 +-
> tests/docker/dockerfiles/fedora-rust-nightly.docker | 2 +-
> tests/docker/dockerfiles/ubuntu2204.docker | 2 +-
> tests/lcitool/refresh | 4 ++--
> 5 files changed, 6 insertions(+), 6 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
>
> diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst
> index 6e3088d524a..3d23dfbd779 100644
> --- a/docs/about/build-platforms.rst
> +++ b/docs/about/build-platforms.rst
> @@ -114,7 +114,7 @@ Rust build dependencies
> bindgen tool, which is too big to package and distribute. The minimum
> supported version of bindgen is 0.60.x. For distributions that do not
> include bindgen or have an older version, it is recommended to install
> - a newer version using ``cargo install bindgen-cli``.
> + a newer version using ``cargo install --locked bindgen-cli``.
>
> QEMU requires Rust 1.83.0. This is available on all supported platforms
> except for the ``mips64el`` architecture on Debian bookworm. For all other
> diff --git a/meson.build b/meson.build
> index d016482db1b..62fab727f4e 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -114,7 +114,7 @@ if have_rust
> bindgen = find_program('bindgen', required: get_option('rust'))
> if not bindgen.found() or bindgen.version().version_compare('<0.60.0')
> if get_option('rust').enabled()
> - error('bindgen version ' + bindgen.version() + ' is unsupported. You can install a new version with "cargo install bindgen-cli"')
> + error('bindgen version ' + bindgen.version() + ' is unsupported. You can install a new version with "cargo install --locked bindgen-cli"')
> else
> if bindgen.found()
> warning('bindgen version ' + bindgen.version() + ' is unsupported, disabling Rust compilation.')
> diff --git a/tests/docker/dockerfiles/fedora-rust-nightly.docker b/tests/docker/dockerfiles/fedora-rust-nightly.docker
> index 043b42a0a9b..38381ef8f59 100644
> --- a/tests/docker/dockerfiles/fedora-rust-nightly.docker
> +++ b/tests/docker/dockerfiles/fedora-rust-nightly.docker
> @@ -179,7 +179,7 @@ RUN set -eux && \
> test "$RUSTDOC" = "$(/usr/local/cargo/bin/rustup +nightly which rustdoc)" && \
> test "$RUSTC" = "$(/usr/local/cargo/bin/rustup +nightly which rustc)"
> ENV PATH=$CARGO_HOME/bin:$PATH
> -RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli
> +RUN /usr/local/cargo/bin/rustup run nightly cargo install --locked bindgen-cli
> RUN $CARGO --list
> # As a final step configure the user (if env is defined)
> ARG USER
> diff --git a/tests/docker/dockerfiles/ubuntu2204.docker b/tests/docker/dockerfiles/ubuntu2204.docker
> index 23b33d6ad44..44e763f571a 100644
> --- a/tests/docker/dockerfiles/ubuntu2204.docker
> +++ b/tests/docker/dockerfiles/ubuntu2204.docker
> @@ -162,7 +162,7 @@ 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
> +RUN cargo install --locked bindgen-cli
> # As a final step configure the user (if env is defined)
> ARG USER
> ARG UID
> diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
> index 259e6ea0729..79a280feab4 100755
> --- a/tests/lcitool/refresh
> +++ b/tests/lcitool/refresh
> @@ -147,7 +147,7 @@ fedora_rustup_nightly_extras = [
> ' test "$RUSTDOC" = "$(/usr/local/cargo/bin/rustup +nightly which rustdoc)" && \\\n',
> ' test "$RUSTC" = "$(/usr/local/cargo/bin/rustup +nightly which rustc)"\n',
> 'ENV PATH=$CARGO_HOME/bin:$PATH\n',
> - 'RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli\n',
> + 'RUN /usr/local/cargo/bin/rustup run nightly cargo install --locked bindgen-cli\n',
> 'RUN $CARGO --list\n',
> ]
>
> @@ -158,7 +158,7 @@ ubuntu2204_rust_extras = [
> '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',
> + 'RUN cargo install --locked bindgen-cli\n',
> ]
>
> debian_all_test_cross_compilers = [
> --
> 2.53.0
>
With regards,
Daniel
--
|: https://berrange.com ~~ https://hachyderm.io/@berrange :|
|: https://libvirt.org ~~ https://entangle-photo.org :|
|: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
prev parent reply other threads:[~2026-03-18 8:55 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-18 8:21 [PATCH] rust: suggest passing --locked to "cargo install" Paolo Bonzini
2026-03-18 8:51 ` Manos Pitsidianakis
2026-03-18 9:28 ` Paolo Bonzini
2026-03-18 9:32 ` Manos Pitsidianakis
2026-03-18 9:43 ` Daniel P. Berrangé
2026-03-18 12:27 ` Paolo Bonzini
2026-03-18 12:31 ` Daniel P. Berrangé
2026-03-18 8:54 ` Daniel P. Berrangé [this message]
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=abpnzhK1pfTst2se@redhat.com \
--to=berrange@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.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 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.